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

[PATCH 2/2 jk/war-on-sprintf] compat/mingw.c: remove printf format warning

From
Johannes Sixt <j6t@kdbg.org>
Date
Oct 23, 2015, 06:02 UTC
Message-ID
<28a610a30ab9d4f742be2f3225db341ea40c8a51.1445579874.git.j6t@kdbg.org>
In-Reply-To
<2c89c60e470def8f85941933c9fafe4db314628a.1445579874.git.j6t@kdbg.org>

5096d490 (convert trivial sprintf / strcpy calls to xsnprintf) converted two sprintf calls. Now GCC warns that "format '%u' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int'". Instead of changing the format string, use a variable of type unsigned in place of the typedef-ed type DWORD, which hides that it is actually an unsigned long.

There is no correctness issue with the old code because unsigned long and unsigned are always of the same size on Windows, even in 64-bit builds.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
I do not know why there are no warnings with the old code. Apparently, the
system provided sprintf declaration does not have format-printf
annotation.
 compat/mingw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/compat/mingw.c b/compat/mingw.c
index a168800..90bdb1e 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -2131,7 +2131,7 @@ void mingw_startup()
 
 int uname(struct utsname *buf)
 {
-	DWORD v = GetVersion();
+	unsigned v = (unsigned)GetVersion();
 	memset(buf, 0, sizeof(*buf));
 	xsnprintf(buf->sysname, sizeof(buf->sysname), "Windows");
 	xsnprintf(buf->release, sizeof(buf->release),
-- 
2.3.2.245.gb5bf9d3
Previous: Johannes SixtNext: Jeff King
Message 2 of 5 in “read_branches_file: plug a FILE* leak”
  1. 1/2 read_branches_file: plug a FILE* leakJohannes Sixt, Oct 23, 2015
  2. 2/2 compat/mingw.c: remove printf format warningJohannes Sixt, Oct 23, 2015
  3. Jeff KingOct 23, 2015
  4. Jeff KingOct 23, 2015
  5. Junio C HamanoOct 23, 2015

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.