]> git.ipfire.org Git - thirdparty/git.git/commitdiff
reflog: fix 'show' subcommand's argv
authorSZEDER Gábor <szeder.dev@gmail.com>
Mon, 28 Mar 2022 21:21:52 +0000 (23:21 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 28 Mar 2022 22:45:46 +0000 (15:45 -0700)
cmd_reflog() invokes parse_options() with PARSE_OPT_KEEP_ARGV0, but it
doesn't account for the retained argv[0] before invoking
cmd_reflog_show() to handle the 'git reflog show' subcommand.
Consequently, cmd_reflog_show() always gets an 'argv' array starting
with elements argv[0]="reflog" and argv[1]="show".

Strip the name of the git command from the 'argv' array before passing
it to the function handling the 'show' subcommand.

There is no user-visible bug here, because cmd_reflog_show() doesn't
have any options or parameters of its own.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/reflog.c

index 6c4fe1af4050c8d51c581d4a484932d5d65450f8..c943c2aabe6e00ebad5fbb9c795ffd3a2639d6bb 100644 (file)
@@ -225,7 +225,7 @@ static int cmd_reflog_show(int argc, const char **argv, const char *prefix)
                      PARSE_OPT_KEEP_DASHDASH | PARSE_OPT_KEEP_ARGV0 |
                      PARSE_OPT_KEEP_UNKNOWN);
 
-       return cmd_log_reflog(argc - 1, argv + 1, prefix);
+       return cmd_log_reflog(argc, argv, prefix);
 }
 
 static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
@@ -425,7 +425,7 @@ int cmd_reflog(int argc, const char **argv, const char *prefix)
                goto log_reflog;
 
        if (!strcmp(argv[1], "show"))
-               return cmd_reflog_show(argc, argv, prefix);
+               return cmd_reflog_show(argc - 1, argv + 1, prefix);
        else if (!strcmp(argv[1], "expire"))
                return cmd_reflog_expire(argc - 1, argv + 1, prefix);
        else if (!strcmp(argv[1], "delete"))