Thomas Rast <trast@xxxxxxxxxxx> writes: > read_revisions_from_stdin() has passed pointers to its read buffer > down to handle_revision_arg() since its inception way back in 42cabc3 > (Teach rev-list an option to read revs from the standard input., > 2006-09-05). Even back then, this was a bug: through > add_pending_object, the argument was recorded in the object_array's > 'name' field. > > Fix it by making a copy whenever read_revisions_from_stdin() passes an > argument down the callchain. The other caller runs handle_revision_arg() > on argv[], where it would be redundant to make a copy. > > Signed-off-by: Thomas Rast <trast@xxxxxxxxxxx> > --- > >> So I changed my mind. Your "easy fix" looks to me the right thing >> to do. > > So here's the same with a commit message and signoff. I hope I got my > history right; I didn't look too long if it had any users, but it was > definitely recorded. Thanks. > > > revision.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/revision.c b/revision.c > index 3a20c96..181a8db 100644 > --- a/revision.c > +++ b/revision.c > @@ -1277,7 +1277,8 @@ static void read_revisions_from_stdin(struct rev_info *revs, > } > die("options not supported in --stdin mode"); > } > - if (handle_revision_arg(sb.buf, revs, 0, REVARG_CANNOT_BE_FILENAME)) > + if (handle_revision_arg(xstrdup(sb.buf), revs, 0, > + REVARG_CANNOT_BE_FILENAME)) > die("bad revision '%s'", sb.buf); > } > if (seen_dashdash) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html