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

[PATCH 4/6] replace xstrdup(git_path(...)) with git_pathdup(...)

From
Jeff King <peff@peff.net>
Date
Apr 20, 2017, 21:09 UTC
Message-ID
<20170420210909.ehy4kim6losllux7@sigill.intra.peff.net>
In-Reply-To
<20170420210754.bzrnc74dpjs7fgpf@sigill.intra.peff.net>

It's more efficient to use git_pathdup(), as it skips an extra copy of the path. And by removing some calls to git_path(), it makes it easier to audit for dangerous uses.

Signed-off-by: Jeff King <peff@peff.net>
---
 builtin/config.c | 5 +++--
 fast-import.c    | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/builtin/config.c b/builtin/config.c
index 4f49a0edb..3407a8b87 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -597,8 +597,9 @@ int cmd_config(int argc, const char **argv, const char *prefix)
 		if (given_config_source.blob)
 			die("editing blobs is not supported");
 		git_config(git_default_config, NULL);
-		config_file = xstrdup(given_config_source.file ?
-				      given_config_source.file : git_path("config"));
+		config_file = given_config_source.file ?
+				xstrdup(given_config_source.file) :
+				git_pathdup("config");
 		if (use_global_config) {
 			int fd = open(config_file, O_CREAT | O_EXCL | O_WRONLY, 0666);
 			if (fd >= 0) {
diff --git a/fast-import.c b/fast-import.c
index 1ea3a0860..cf58f875b 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -3202,7 +3202,7 @@ static char* make_fast_import_path(const char *path)
 {
 	if (!relative_marks_paths || is_absolute_path(path))
 		return xstrdup(path);
-	return xstrdup(git_path("info/fast-import/%s", path));
+	return git_pathdup("info/fast-import/%s", path);
 }
 
 static void option_import_marks(const char *marks,
-- 
2.13.0.rc0.363.g8726c260e
Previous: Jeff KingNext: Jeff King
Message 5 of 8 in “removing more calls to git_path()”
  1. 0/6 removing more calls to git_path()Jeff King, Apr 20, 2017
  2. 1/6 bisect: add git_path_bisect_terms helperJeff King, Apr 20, 2017
  3. 2/6 branch: add edit_description() helperJeff King, Apr 20, 2017
  4. 3/6 use git_path_* helper functionsJeff King, Apr 20, 2017
  5. 4/6 replace xstrdup(git_path(...)) with git_pathdup(...)Jeff King, Apr 20, 2017
  6. 5/6 replace strbuf_addstr(git_path()) with git_path_buf()Jeff King, Apr 20, 2017
  7. 6/6 am: drop "dir" parameter from am_state_initJeff King, Apr 20, 2017
  8. Junio C HamanoApr 21, 2017

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.