[PATCH] notes_merge_commit(): do not pass temporary buffer to other function
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- Sep 27, 2011, 04:46 UTC
- Message-ID
- <1317098813-30839-1-git-send-email-mhagger@alum.mit.edu>
It is unsafe to pass a temporary buffer as an argument to read_directory().
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> ---
I discovered this problem when an innocent modification to unrelated code triggered test failures.
notes-merge.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git notes-merge.c notes-merge.c index e1aaf43..baaf31f 100644 --- notes-merge.c +++ notes-merge.c @@ -680,7 +680,7 @@ int notes_merge_commit(struct notes_merge_options *o, * Finally store the new commit object SHA1 into 'result_sha1'. */ struct dir_struct dir; - const char *path = git_path(NOTES_MERGE_WORKTREE "/"); + char *path = xstrdup(git_path(NOTES_MERGE_WORKTREE "/")); int path_len = strlen(path), i; const char *msg = strstr(partial_commit->buffer, "\n\n"); @@ -720,6 +720,7 @@ int notes_merge_commit(struct notes_merge_options *o, result_sha1); OUTPUT(o, 4, "Finalized notes merge commit: %s", sha1_to_hex(result_sha1)); + free(path); return 0; }
-- 1.7.7.rc2