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

[PATCH][next] hook: check for NULL pointer before deref

From
Adrian Ratiu <adrian.ratiu@collabora.com>
Date
Jan 9, 2026, 15:35 UTC
Message-ID
<20260109153528.476163-1-adrian.ratiu@collabora.com>

Fix a compiler warning (-Werror=analyzer-deref-before-check) due to dereferencing the options pointer before NULL checking it.

In practice run_hooks_opt() is never called with a NULL opt struct, so this just fixes the code to not trigger the warning anymore.

The NULL check is kept as-is because some future patches might end up calling run_hooks_opt with a NULL opt struct, which is clearly a bug.

While at it, also fix the BUG message function name.
Reported-by: correctmost <cmlists@sent.com>
Suggested-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
---
This is based on next, because it fixes a warning introduced in next.
Succesful CI run: https://github.com/10ne1/git/actions/runs/20855922803
---
 hook.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/hook.c b/hook.c
index 35211e5ed7..c257bd3940 100644
--- a/hook.c
+++ b/hook.c
@@ -148,12 +148,11 @@ int run_hooks_opt(struct repository *r, const char *hook_name,
 	};
 	const char *const hook_path = find_hook(r, hook_name);
 	int ret = 0;
-	const struct run_process_parallel_opts opts = {
+	struct run_process_parallel_opts opts = {
 		.tr2_category = "hook",
 		.tr2_label = hook_name,
 
 		.processes = 1,
-		.ungroup = options->ungroup,
 
 		.get_next_task = pick_next_hook,
 		.start_failure = notify_start_failure,
@@ -165,11 +164,13 @@ int run_hooks_opt(struct repository *r, const char *hook_name,
 	};
 
 	if (!options)
-		BUG("a struct run_hooks_opt must be provided to run_hooks");
+		BUG("a struct run_hooks_opt must be provided to run_hooks_opt");
 
 	if (options->path_to_stdin && options->feed_pipe)
 		BUG("options path_to_stdin and feed_pipe are mutually exclusive");
 
+	opts.ungroup = options->ungroup;
+
 	if (options->invoked_hook)
 		*options->invoked_hook = 0;
 
-- 
2.51.2
Next: Patrick Steinhardt
Message 1 of 3 in “[next] hook: check for NULL pointer before deref”
  1. [next] hook: check for NULL pointer before derefAdrian Ratiu, Jan 9, 2026
  2. Patrick SteinhardtJan 9, 2026
  3. Adrian RatiuJan 9, 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.