OSDN Git Service

submodule--helper: fix potential NULL-dereference
authorStefan Beller <sbeller@google.com>
Thu, 31 Mar 2016 21:04:37 +0000 (14:04 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 31 Mar 2016 22:19:01 +0000 (15:19 -0700)
Don't dereference NULL 'path' if it was never assigned.  Also
protect against an empty --path argument.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/submodule--helper.c

index f4c3eff..4f0b002 100644 (file)
@@ -194,6 +194,9 @@ static int module_clone(int argc, const char **argv, const char *prefix)
        argc = parse_options(argc, argv, prefix, module_clone_options,
                             git_submodule_helper_usage, 0);
 
+       if (!path || !*path)
+               die(_("submodule--helper: unspecified or empty --path"));
+
        strbuf_addf(&sb, "%s/modules/%s", get_git_dir(), name);
        sm_gitdir = strbuf_detach(&sb, NULL);
 
@@ -215,10 +218,7 @@ static int module_clone(int argc, const char **argv, const char *prefix)
        if (safe_create_leading_directories_const(path) < 0)
                die(_("could not create directory '%s'"), path);
 
-       if (path && *path)
-               strbuf_addf(&sb, "%s/.git", path);
-       else
-               strbuf_addstr(&sb, ".git");
+       strbuf_addf(&sb, "%s/.git", path);
 
        if (safe_create_leading_directories_const(sb.buf) < 0)
                die(_("could not create leading directories of '%s'"), sb.buf);