diff options
| author | Jharrod LaFon <jlafon@eyesopen.com> | 2013-08-19 09:26:56 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2013-08-19 13:47:56 -0700 |
| commit | 4b05440283350ec3b01afabe847d9ce5cf4cbdb7 (patch) | |
| tree | d07d7b4e2fcbfa3d9cb18df7e5110bcfbfc50ff4 /t/t7400-submodule-basic.sh | |
| parent | Merge branch 'maint-1.8.1' into maint-1.8.2 (diff) | |
| download | git-4b05440283350ec3b01afabe847d9ce5cf4cbdb7.tar.gz git-4b05440283350ec3b01afabe847d9ce5cf4cbdb7.zip | |
avoid segfault on submodule.*.path set to an empty "true"
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)
This is because the parsing of "submodule.*.path" is not prepared to
see a value-less "true" and assumes that the value is always
non-NULL (parsing of "ignore" has the same problem).
Fix it by checking the NULL-ness of value and complain with
config_error_nonbool().
Signed-off-by: Jharrod LaFon <jlafon@eyesopen.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7400-submodule-basic.sh')
| -rwxr-xr-x | t/t7400-submodule-basic.sh | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh index 2683cba7e3..0edf74c68f 100755 --- a/t/t7400-submodule-basic.sh +++ b/t/t7400-submodule-basic.sh @@ -18,6 +18,16 @@ test_expect_success 'setup - initial commit' ' git branch initial ' +test_expect_success 'configuration parsing' ' + test_when_finished "rm -f .gitmodules" && + cat >.gitmodules <<-\EOF && + [submodule "s"] + path + ignore + EOF + test_must_fail git status +' + test_expect_success 'setup - repository in init subdirectory' ' mkdir init && ( |
