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

[PATCH] setup: avoid uninitialized use of is_safe in ensure_valid_ownership

From
Carlo Marcelo Arenas Belón <carenas@gmail.com>
Date
Apr 27, 2022, 08:04 UTC
Message-ID
<20220427080412.37766-1-carenas@gmail.com>

8959555cee7 (setup_git_directory(): add an owner check for the top-level directory, 2022-03-02) adds this member as part of a newly created structure that then gets initialized during the callback, but bb50ec3cc30 (setup: fix safe.directory key not being checked, 2022-04-13) add a quick exit from the callback that avoids this initialization unless the callback is called with the relevant key.

This leads to this variable not being initialized UNLESS the global config has at least one key for safe.directory, so instead initialize it in the caller.

Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
---
 setup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.c b/setup.c
index a7b36f3ffbf..17c7f5fc1dc 100644
--- a/setup.c
+++ b/setup.c
@@ -1122,7 +1122,7 @@ static int safe_directory_cb(const char *key, const char *value, void *d)
 
 static int ensure_valid_ownership(const char *path)
 {
-	struct safe_directory_data data = { .path = path };
+	struct safe_directory_data data = { .path = path, .is_safe = 0 };
 
 	if (!git_env_bool("GIT_TEST_ASSUME_DIFFERENT_OWNER", 0) &&
 	    is_path_owned_by_current_user(path))
-- 
2.36.0.266.g59f845bde02
Next: Junio C Hamano
Message 1 of 5 in “setup: avoid uninitialized use of is_safe in ensure_valid_ownership”
  1. setup: avoid uninitialized use of is_safe in ensure_valid_ownershipCarlo Marcelo Arenas Belón, Apr 27, 2022
  2. Junio C HamanoApr 27, 2022
  3. Carlo ArenasApr 27, 2022
  4. Carlo ArenasApr 27, 2022
  5. Derrick StoleeApr 27, 2022

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.