builtin-branch: Fix crash on invalid use of --force

The option --force should not put us in 'create branch' mode. The fact that this option is only valid in 'create branch' mode is already caught by the the next 'if' in which we assure that we are in the correct mode. Without this patch, "git branch -f" without any other argument ends up calling create_branch without any branch name. Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Vincent van Ravesteijn committed Nov 23, 2011 at 07:31 UTC 5cd75c7d8da8971d0d78f82d78c017e686fb5bb0
1 file changed +2 -2
builtin/branch.c
+2 -2
@@ -705,7 +705,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
705 argc = parse_options(argc, argv, prefix, options, builtin_branch_usage,
706 0);
707
708 - if (!delete && !rename && !force_create && argc == 0)
708 + if (!delete && !rename && argc == 0)
709 list = 1;
710
711 if (!!delete + !!rename + !!force_create + !!list > 1)
@@ -726,7 +726,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
726 rename_branch(argv[0], argv[1], rename > 1);
727 else
728 usage_with_options(builtin_branch_usage, options);
729 - } else if (argc <= 2) {
729 + } else if (argc > 0 && argc <= 2) {
730 if (kinds != REF_LOCAL_BRANCH)
731 die(_("-a and -r options to 'git branch' do not make sense with a branch name"));
732 create_branch(head, argv[0], (argc == 2) ? argv[1] : head,