John Keeping <john@xxxxxxxxxxxxx> writes: > There are two problems here: > > 1) If no argument is provided, then the command segfaults > 2) The argument is not consumed, so there will be excess output > > Fix both of these in one go by restructuring the handler for this > option. > > Reported-by: Daniel Hahler <genml+git-2014@xxxxxxxxxx> > Signed-off-by: John Keeping <john@xxxxxxxxxxxxx> > --- Looks sensible; thanks. > builtin/rev-parse.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c > index aaeb611..645cc4a 100644 > --- a/builtin/rev-parse.c > +++ b/builtin/rev-parse.c > @@ -738,9 +738,12 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) > continue; > } > if (!strcmp(arg, "--resolve-git-dir")) { > - const char *gitdir = resolve_gitdir(argv[i+1]); > + const char *gitdir; > + if (++i >= argc) > + die("--resolve-git-dir requires an argument"); > + gitdir = resolve_gitdir(argv[i]); > if (!gitdir) > - die("not a gitdir '%s'", argv[i+1]); > + die("not a gitdir '%s'", argv[i]); > puts(gitdir); > continue; > } -- 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