From: Thomas Rast Date: Fri, 16 Aug 2013 07:50:50 GMT Subject: Re: [PATCH] Git segmentation faults if submodule path is empty. Message-ID: <87zjsif50l.fsf@linux-k42r.v.cablecom.net> In-Reply-To: <277BEB82-D618-48D9-A276-4B0E76A11A38@eyesopen.com> Jharrod LaFon writes: > Git fails due to a segmentation fault if a submodule path is empty. > Here is an example .gitmodules that will cause a segmentation fault: > [submodule "foo-module"] > path > url = http://host/repo.git > $ git status > Segmentation fault (core dumped) Can you turn this into a test to guard against the bug reappearing? > This occurs because in the function parse_submodule_config_option, the > variable 'value' is assumed not to be null, and when passed as an > argument to xstrdup a segmentation fault occurs if it is indeed null. > This is the case when using the .gitmodules example above. > > This patch addresses the issue by returning from the function if > 'value' is null before the call to xstrdup is made. > > Signed-off-by: Jharrod LaFon eyesopen.com> > --- > submodule.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/submodule.c b/submodule.c > index 1821a5b..880f21b 100644 > --- a/submodule.c > +++ b/submodule.c > @@ -130,7 +130,7 @@ int parse_submodule_config_option(const char *var, const char *value) > const char *name, *key; > int namelen; > > - if (parse_config_key(var, "submodule", &name, &namelen, &key) < 0 || !name) > + if (parse_config_key(var, "submodule", &name, &namelen, &key) < 0 || !name || !value) > return 0; > > if (!strcmp(key, "path")) { -- Thomas Rast trast@{inf,student}.ethz.ch