notes_merge_commit(): do not pass temporary buffer to other function
authorMichael Haggerty <mhagger@alum.mit.edu>
Tue, 27 Sep 2011 04:46:53 +0000 (06:46 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 27 Sep 2011 16:58:47 +0000 (09:58 -0700)
It is unsafe to pass a temporary buffer as an argument to
read_directory().

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
notes-merge.c

index e1aaf43b438d0cfb6b7b0c723060a662a915bcea..baaf31f4aed4e4cfd967c278b7cfd4bee6a0ab30 100644 (file)
@@ -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;
 }