submodule: fix segmentation fault in submodule--helper clone
authorJacob Keller <jacob.keller@gmail.com>
Mon, 29 Feb 2016 22:58:33 +0000 (14:58 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 1 Mar 2016 20:24:10 +0000 (12:24 -0800)
The git submodule--helper clone command will fail with a segmentation
fault when given a null url or null path variable. Since these are
required for proper functioning of the submodule--helper clone
subcommand, add checks to prevent running and fail gracefully when
missing.

Update the usage string to reflect the requirement that the --url and
--path "options" are required.

Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
Reviewed-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/submodule--helper.c
index 3c4d3ff7f4af6874f9ab9004bedb8690f3c4ac72..35ae85a7e1bcc3d3d12f36cae439f7fbf98d8a4a 100644 (file)
@@ -186,15 +186,15 @@ static int module_clone(int argc, const char **argv, const char *prefix)
 
        const char *const git_submodule_helper_usage[] = {
                N_("git submodule--helper clone [--prefix=<path>] [--quiet] "
-                  "[--reference <repository>] [--name <name>] [--url <url>]"
-                  "[--depth <depth>] [--path <path>]"),
+                  "[--reference <repository>] [--name <name>] [--depth <depth>] "
+                  "--url <url> --path <path>"),
                NULL
        };
 
        argc = parse_options(argc, argv, prefix, module_clone_options,
                             git_submodule_helper_usage, 0);
 
-       if (argc)
+       if (argc || !url || !path)
                usage_with_options(git_submodule_helper_usage,
                                   module_clone_options);