git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/5] query_fsmonitor: use xsnprintf for formatting integers

From
Jeff King <peff@peff.net>
Date
May 19, 2018, 01:57 UTC
Message-ID
<20180519015758.GC32492@sigill.intra.peff.net>
In-Reply-To
<20180519015444.GA12080@sigill.intra.peff.net>

These formatted integers should always fit into their 64-byte buffers. Let's use xsnprintf() to add an assertion that this is the case, which makes auditing for other unchecked snprintfs() easier.

Signed-off-by: Jeff King <peff@peff.net>
---
 fsmonitor.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fsmonitor.c b/fsmonitor.c
index ed3d1a074d..cc19b27e1d 100644
--- a/fsmonitor.c
+++ b/fsmonitor.c
@@ -104,8 +104,8 @@ static int query_fsmonitor(int version, uint64_t last_update, struct strbuf *que
 	if (!(argv[0] = core_fsmonitor))
 		return -1;
 
-	snprintf(ver, sizeof(ver), "%d", version);
-	snprintf(date, sizeof(date), "%" PRIuMAX, (uintmax_t)last_update);
+	xsnprintf(ver, sizeof(ver), "%d", version);
+	xsnprintf(date, sizeof(date), "%" PRIuMAX, (uintmax_t)last_update);
 	argv[1] = ver;
 	argv[2] = date;
 	argv[3] = NULL;
-- 
2.17.0.1052.g7d69f75dbf
Previous: Jeff KingNext: René Scharfe
Message 7 of 13 in “snprintf truncation fixes”
  1. 0/5 snprintf truncation fixesJeff King, May 19, 2018
  2. 1/5 http: use strbufs instead of fixed buffersJeff King, May 19, 2018
  3. Stefan BellerMay 21, 2018
  4. Jeff KingMay 21, 2018
  5. Stefan BellerMay 21, 2018
  6. 2/5 log_write_email_headers: use strbufsJeff King, May 19, 2018
  7. 3/5 query_fsmonitor: use xsnprintf for formatting integersJeff King, May 19, 2018
  8. René ScharfeMay 19, 2018
  9. Jeff KingMay 20, 2018
  10. Junio C HamanoMay 21, 2018
  11. Ben PeartMay 21, 2018
  12. 4/5 shorten_unambiguous_ref: use xsnprintfJeff King, May 19, 2018
  13. 5/5 fmt_with_err: add a comment that truncation is OKJeff King, May 19, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.