]> git.ipfire.org Git - thirdparty/git.git/commitdiff
submodule--helper: use "--" to signal end of clone options
authorJeff King <peff@peff.net>
Mon, 24 Sep 2018 08:32:15 +0000 (04:32 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 27 Sep 2018 16:34:55 +0000 (09:34 -0700)
When we clone a submodule, we call "git clone $url $path".
But there's nothing to say that those components can't begin
with a dash themselves, confusing git-clone into thinking
they're options. Let's pass "--" to make it clear what we
expect.

There's no test here, because it's actually quite hard to
make these names work, even with "git clone" parsing them
correctly. And we're going to restrict these cases even
further in future commits. So we'll leave off testing until
then; this is just the minimal fix to prevent us from doing
something stupid with a badly formed entry.

Reported-by: joernchen <joernchen@phenoelit.de>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/submodule--helper.c

index e8ccddd3b1b4473a23a5b50434a140f526f5ca7a..676cfed770f3cce91b4f5eebcb88d17b7f2056b2 100644 (file)
@@ -510,6 +510,7 @@ static int clone_submodule(const char *path, const char *gitdir, const char *url
        if (gitdir && *gitdir)
                argv_array_pushl(&cp.args, "--separate-git-dir", gitdir, NULL);
 
+       argv_array_push(&cp.args, "--");
        argv_array_push(&cp.args, url);
        argv_array_push(&cp.args, path);