git-submodule: forward exit code of git-submodule--helper more faithfully
commitc4c02bf16c47f8751958458e540269ec13f4bd98
authorJohannes Sixt <j6t@kdbg.org>
Fri, 22 Jul 2016 19:14:38 +0000 (22 21:14 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 22 Jul 2016 20:43:50 +0000 (22 13:43 -0700)
tree174e1e867fd15445abe2d4ee8f23145257b3c5b0
parentbb2d8a817df91c68742e10ace2a791de176f7247
git-submodule: forward exit code of git-submodule--helper more faithfully

git-submodule--helper is invoked as the upstream of a pipe in several
places. Usually, the failure of a program in this position is not
detected by the shell. For this reason, the code inserts a token in the
output stream when git-submodule--helper fails that is detected
downstream, where the shell script is quit with exit code 1.

There happens to be a bug in git-submodule--helper that leads to a
segmentation fault. The test suite triggers the crash in several places,
all of which are protected by 'test_must_fail'. But due to the inspecific
exit code 1, the crash remains undiagnosed.

Extend the failure protocol such that git-submodule--helper's exit code
is passed downstream (only in the case of failure). This enables the
downstream to use it as its own exit code, and 'test_must_fail' to
identify the segmentation fault as an unexpected failure.

The bug itself is fixed in the next commit.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-submodule.sh
t/t5815-submodule-protos.sh
t/t7400-submodule-basic.sh