# [PATCH 4/5] Call git_pathdup() rather than xstrdup(git_path("..."))

1 messages from 2012-09-04 to 2012-09-04. Participants: Ramsay Jones.
Thread: https://gitlist.dev/t/31432

## Ramsay Jones, 2012-09-04 17:30

Subject: [PATCH 4/5] Call git_pathdup() rather than xstrdup(git_path("..."))
Message-ID: <50463AAD.7060107@ramsay1.demon.co.uk>
URL: https://gitlist.dev/e/50463AAD.7060107%40ramsay1.demon.co.uk

```

In addition to updating the two xstrdup(git_path("...")) call sites
with git_pathdup(), we also fix a memory leak by freeing the memory
allocated to the ADD_EDIT.patch 'file' in the edit_patch() function.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
---
 bisect.c      | 2 +-
 builtin/add.c | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/bisect.c b/bisect.c
index 48acf73..1aad49b 100644
--- a/bisect.c
+++ b/bisect.c
@@ -833,7 +833,7 @@ static int check_ancestors(const char *prefix)
  */
 static void check_good_are_ancestors_of_bad(const char *prefix, int no_checkout)
 {
-	char *filename = xstrdup(git_path("BISECT_ANCESTORS_OK"));
+	char *filename = git_pathdup("BISECT_ANCESTORS_OK");
 	struct stat st;
 	int fd;
 
diff --git a/builtin/add.c b/builtin/add.c
index 89dce56..2fc2677 100644
--- a/builtin/add.c
+++ b/builtin/add.c
@@ -260,7 +260,7 @@ int interactive_add(int argc, const char **argv, const char *prefix, int patch)
 
 static int edit_patch(int argc, const char **argv, const char *prefix)
 {
-	char *file = xstrdup(git_path("ADD_EDIT.patch"));
+	char *file = git_pathdup("ADD_EDIT.patch");
 	const char *apply_argv[] = { "apply", "--recount", "--cached",
 		NULL, NULL };
 	struct child_process child;
@@ -303,6 +303,7 @@ static int edit_patch(int argc, const char **argv, const char *prefix)
 		die (_("Could not apply '%s'"), file);
 
 	unlink(file);
+	free(file);
 	return 0;
 }
 
-- 
1.7.12

```
