git/list[1] front-page[2] threads[3] people[4] search[5] about
wed 2026-10-07 16:58 UTC

[PATCH] name-rev: fix an 'may be used uninitialized' error

From
Ramsay Jones <ramsay@ramsayjones.plus.com>
Date
May 3, 2026, 15:16 UTC
Message-ID
<e74a8fd8-0617-46a8-8bef-a454d51a99c1@ramsayjones.plus.com>
Today's seen branch fails to build (with DEVELOPER=1), like so:
      CC builtin/name-rev.o
  builtin/name-rev.c: In function ‘cmd_format_rev’:
  builtin/name-rev.c:885:28: error: ‘commit’ may be used uninitialized [-Werror=maybe-uninitialized]
    885 |                         if (!commit) {
        |                            ^
  builtin/name-rev.c:867:40: note: ‘commit’ was declared here
    867 |                         struct commit *commit;
        |                                        ^~~~~~
  cc1: all warnings being treated as errors
  make: *** [Makefile:2932: builtin/name-rev.o] Error 1

This can be fixed in several ways; initialise the 'commit' variable to NULL (on line 867), initialise 'commit' to NULL on the line before the conditional on line 883, or (as I chose here) initialise the 'commit' variable in an else arm of the conditional.

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
---
Hi Kristoffer,

I wrote this patch yesterday, just before I had to go out, and didn't get around to sending it to the list. Today, the problem has gone away ... (along with the 'kh/name-rev-custom-format' branch)!

Assuming you will be sending a new version soon, ... could you please squash this (or similar) into the patch corresponding to commit 5903855b1c ("format-rev: introduce builtin for on-demand pretty formatting", 2026-04-29).

Note that I don't think this particular fix is better than any other, it was just that my cursor was on that line in vim ... :)

ATB, Ramsay Jones

 builtin/name-rev.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/builtin/name-rev.c b/builtin/name-rev.c
index b941e93834..5b7f7a00e5 100644
--- a/builtin/name-rev.c
+++ b/builtin/name-rev.c
@@ -882,6 +882,8 @@ int cmd_format_rev(int argc,
 			peeled = deref_tag(the_repository, object, scratch_buf.buf, 0);
 			if (peeled && peeled->type == OBJ_COMMIT)
 				commit = (struct commit *)peeled;
+			else
+				commit = NULL;
 			if (!commit) {
 				fprintf(stderr, "Could not get commit for %s. Skipping.\n",
 					*argv);
-- 
2.54.0
Next: Kristoffer Haugsbakk
Message 1 of 8 in “name-rev: fix an 'may be used uninitialized' error”
  1. name-rev: fix an 'may be used uninitialized' errorRamsay Jones, May 3, 2026
  2. Kristoffer HaugsbakkMay 3, 2026
  3. Junio C HamanoMay 4, 2026
  4. Kristoffer HaugsbakkMay 4, 2026
  5. Ramsay JonesMay 4, 2026
  6. Kristoffer HaugsbakkMay 4, 2026
  7. Ramsay JonesMay 5, 2026
  8. Kristoffer HaugsbakkMay 5, 2026

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.