diff options
author | Jim Meyering <jim@meyering.net> | 2012-02-25 18:34:26 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-02-26 16:32:54 -0800 |
commit | f0c5793b37a53992611968ab4a1d62a0e3edc2dd (patch) | |
tree | 56d00d3f93f74032aa45899a931dd6f4872bb082 | |
parent | ad687b447a87efaf61c39075da2ef81b85715186 (diff) | |
download | git-f0c5793b37a53992611968ab4a1d62a0e3edc2dd.tar.gz |
am: don't infloop for an empty input file
git-am.sh's check_patch_format function would attempt to preview
the patch to guess its format, but would go into an infinite loop
when the patch file happened to be empty. The solution: exit the
loop when "read" fails, not when the line var, "$l1" becomes empty.
Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-am.sh | 2 | ||||
-rwxr-xr-x | t/t4150-am.sh | 10 |
2 files changed, 11 insertions, 1 deletions
@@ -201,7 +201,7 @@ check_patch_format () { l1= while test -z "$l1" do - read l1 + read l1 || break done read l2 read l3 diff --git a/t/t4150-am.sh b/t/t4150-am.sh index d7d9ccc1c8..03eee07ffb 100755 --- a/t/t4150-am.sh +++ b/t/t4150-am.sh @@ -495,4 +495,14 @@ test_expect_success 'am -q is quiet' ' ! test -s output.out ' +test_expect_success 'am empty-file does not infloop' ' + rm -fr .git/rebase-apply && + git reset --hard && + touch empty-file && + test_tick && + { git am empty-file > actual 2>&1 && false || :; } && + echo Patch format detection failed. >expected && + test_cmp expected actual +' + test_done |