Skip to content

Commit 3706ed2

Browse files
rctaygitster
authored andcommitted
branch -m: handle no arg properly
Modify the option parsing heuristic to handle all -m (rename) cases, including the no-arg case. Previously, this "fell through" to the (argc <= 2) case and caused segfault. Reported-by: Stefan Näwe <[email protected]> Signed-off-by: Tay Ray Chuan <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 87bf9a7 commit 3706ed2

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

builtin/branch.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -719,11 +719,14 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
719719
else if (list)
720720
return print_ref_list(kinds, detached, verbose, abbrev,
721721
with_commit, argv);
722-
else if (rename && (argc == 1))
723-
rename_branch(head, argv[0], rename > 1);
724-
else if (rename && (argc == 2))
725-
rename_branch(argv[0], argv[1], rename > 1);
726-
else if (argc <= 2) {
722+
else if (rename) {
723+
if (argc == 1)
724+
rename_branch(head, argv[0], rename > 1);
725+
else if (argc == 2)
726+
rename_branch(argv[0], argv[1], rename > 1);
727+
else
728+
usage_with_options(builtin_branch_usage, options);
729+
} else if (argc <= 2) {
727730
if (kinds != REF_LOCAL_BRANCH)
728731
die(_("-a and -r options to 'git branch' do not make sense with a branch name"));
729732
create_branch(head, argv[0], (argc == 2) ? argv[1] : head,

0 commit comments

Comments
 (0)