John Keeping <[email protected]> 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 <[email protected]>
> Signed-off-by: John Keeping <[email protected]>
> ---
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html