From f0c5793b37a53992611968ab4a1d62a0e3edc2dd Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Sat, 25 Feb 2012 18:34:26 +0100 Subject: [PATCH] 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 Signed-off-by: Junio C Hamano --- git-am.sh | 2 +- t/t4150-am.sh | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/git-am.sh b/git-am.sh index 1c13b1399..f43a75b04 100755 --- a/git-am.sh +++ b/git-am.sh @@ -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 d7d9ccc1c..03eee07ff 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 -- 2.30.2