* [PATCH] notes_merge_commit(): do not pass temporary buffer to other function
@ 2011-09-27 4:46 Michael Haggerty
2011-09-27 7:12 ` Johan Herland
2011-09-27 16:59 ` Junio C Hamano
0 siblings, 2 replies; 5+ messages in thread
From: Michael Haggerty @ 2011-09-27 4:46 UTC (permalink / raw)
To: git; +Cc: Johan Herland, Junio C Hamano, Michael Haggerty
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
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] notes_merge_commit(): do not pass temporary buffer to other function
2011-09-27 4:46 [PATCH] notes_merge_commit(): do not pass temporary buffer to other function Michael Haggerty
@ 2011-09-27 7:12 ` Johan Herland
2011-09-27 16:59 ` Junio C Hamano
1 sibling, 0 replies; 5+ messages in thread
From: Johan Herland @ 2011-09-27 7:12 UTC (permalink / raw)
To: Michael Haggerty; +Cc: git, Junio C Hamano
On Tue, Sep 27, 2011 at 06:46, Michael Haggerty <mhagger@alum.mit.edu> wrote:
> It is unsafe to pass a temporary buffer as an argument to
> read_directory().
>
> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
ACK.
...Johan
--
Johan Herland, <johan@herland.net>
www.herland.net
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] notes_merge_commit(): do not pass temporary buffer to other function
2011-09-27 4:46 [PATCH] notes_merge_commit(): do not pass temporary buffer to other function Michael Haggerty
2011-09-27 7:12 ` Johan Herland
@ 2011-09-27 16:59 ` Junio C Hamano
2011-09-28 2:50 ` Michael Haggerty
1 sibling, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2011-09-27 16:59 UTC (permalink / raw)
To: Michael Haggerty; +Cc: git, Johan Herland
Michael Haggerty <mhagger@alum.mit.edu> writes:
> 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
It is Ok to play with -p0 yourself but please don't do that in the public.
> @@ -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;
> }
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] notes_merge_commit(): do not pass temporary buffer to other function
2011-09-27 16:59 ` Junio C Hamano
@ 2011-09-28 2:50 ` Michael Haggerty
2011-09-28 3:10 ` Junio C Hamano
0 siblings, 1 reply; 5+ messages in thread
From: Michael Haggerty @ 2011-09-28 2:50 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, Johan Herland
On 09/27/2011 06:59 PM, Junio C Hamano wrote:
> Michael Haggerty <mhagger@alum.mit.edu> writes:
>
>> 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
>
> It is Ok to play with -p0 yourself but please don't do that in the public.
Sorry; I had set diff.noprefix=true, not realizing that it would affect
things like "git format-patch". It also confused emacs' magit mode, and
probably some other tools. It's now set permanently back to false.
The reason I was experimenting with this option is that it is a quick
double-click to select a filename like "foo/bar" in the diff output,
whereas selecting the filename out of "a/foo/bar" requires a slower
click and drag. Once I considered whether git could be taught to
explicitly ignore the "[ab]/" prefix when parsing filenames, but that is
too evil even for me :-)
Michael
--
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] notes_merge_commit(): do not pass temporary buffer to other function
2011-09-28 2:50 ` Michael Haggerty
@ 2011-09-28 3:10 ` Junio C Hamano
0 siblings, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2011-09-28 3:10 UTC (permalink / raw)
To: Michael Haggerty; +Cc: Junio C Hamano, git, Johan Herland
Michael Haggerty <mhagger@alum.mit.edu> writes:
>>> diff --git notes-merge.c notes-merge.c
>>> index e1aaf43..baaf31f 100644
>>> --- notes-merge.c
>>> +++ notes-merge.c
>>
>> It is Ok to play with -p0 yourself but please don't do that in the public.
>
> Sorry; I had set diff.noprefix=true, not realizing that it would affect
> things like "git format-patch". It also confused emacs' magit mode, and
> probably some other tools. It's now set permanently back to false.
Thanks.
It is nothing catastrophic (I applied it with "am -p0 -s3c" just fine),
but everybody here sends -p1 format, so...
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-09-28 3:10 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-27 4:46 [PATCH] notes_merge_commit(): do not pass temporary buffer to other function Michael Haggerty
2011-09-27 7:12 ` Johan Herland
2011-09-27 16:59 ` Junio C Hamano
2011-09-28 2:50 ` Michael Haggerty
2011-09-28 3:10 ` Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).