reflog: fix 'show' subcommand's argv
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>
SZEDER Gábor committed
Mar 28, 2022 at 23:21 UTC
840344db7578a794fd25c44587e4a08dfe4f41cc
1 file changed
+2
-2
builtin/reflog.c
+2
-2
@@ -225,7 +225,7 @@ static int cmd_reflog_show(int argc, const char **argv, const char *prefix)
225
PARSE_OPT_KEEP_DASHDASH | PARSE_OPT_KEEP_ARGV0 |
226
PARSE_OPT_KEEP_UNKNOWN);
227
228
- return cmd_log_reflog(argc - 1, argv + 1, prefix);
228
+ return cmd_log_reflog(argc, argv, prefix);
229
}
230
231
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)
425
goto log_reflog;
426
427
if (!strcmp(argv[1], "show"))
428
- return cmd_reflog_show(argc, argv, prefix);
428
+ return cmd_reflog_show(argc - 1, argv + 1, prefix);
429
else if (!strcmp(argv[1], "expire"))
430
return cmd_reflog_expire(argc - 1, argv + 1, prefix);
431
else if (!strcmp(argv[1], "delete"))