builtin-branch: Fix crash on invalid use of --force
authorVincent van Ravesteijn <vfr@lyx.org>
Wed, 23 Nov 2011 06:31:55 +0000 (07:31 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Nov 2011 21:23:33 +0000 (13:23 -0800)
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>
builtin/branch.c

index 51ca6a02d7433f1394de10a7f6ef1aa565ac03e2..55cad766c7e3d284b1361b1beca8c5d51de96083 100644 (file)
@@ -705,7 +705,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
        argc = parse_options(argc, argv, prefix, options, builtin_branch_usage,
                             0);
 
-       if (!delete && !rename && !force_create && argc == 0)
+       if (!delete && !rename && argc == 0)
                list = 1;
 
        if (!!delete + !!rename + !!force_create + !!list > 1)
@@ -726,7 +726,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
                        rename_branch(argv[0], argv[1], rename > 1);
                else
                        usage_with_options(builtin_branch_usage, options);
-       } else if (argc <= 2) {
+       } else if (argc > 0 && argc <= 2) {
                if (kinds != REF_LOCAL_BRANCH)
                        die(_("-a and -r options to 'git branch' do not make sense with a branch name"));
                create_branch(head, argv[0], (argc == 2) ? argv[1] : head,