From: Junio C Hamano Date: Tue, 9 Mar 2021 00:09:07 +0000 (-0800) Subject: Sync with Git 2.30.2 for CVE-2021-21300 X-Git-Tag: v2.31.0-rc2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=56a57652ef8e4ca2f108a8719b8caeed5e153c95;p=thirdparty%2Fgit.git Sync with Git 2.30.2 for CVE-2021-21300 Signed-off-by: Junio C Hamano --- 56a57652ef8e4ca2f108a8719b8caeed5e153c95 diff --cc t/t2006-checkout-index-basic.sh index 7ff3edab05,7b25a3572e..7705e3a317 --- a/t/t2006-checkout-index-basic.sh +++ b/t/t2006-checkout-index-basic.sh @@@ -31,28 -31,50 +31,73 @@@ test_expect_success 'checkout-index rep test_must_fail git checkout-index --stdin 2>stderr && test_i18ngrep not.in.the.cache stderr ' + for mode in 'case' 'utf-8' + do + case "$mode" in + case) dir='A' symlink='a' mode_prereq='CASE_INSENSITIVE_FS' ;; + utf-8) + dir=$(printf "\141\314\210") symlink=$(printf "\303\244") + mode_prereq='UTF8_NFD_TO_NFC' ;; + esac + + test_expect_success SYMLINKS,$mode_prereq \ + "checkout-index with $mode-collision don't write to the wrong place" ' + git init $mode-collision && + ( + cd $mode-collision && + mkdir target-dir && + + empty_obj_hex=$(git hash-object -w --stdin objs <<-EOF && + 100644 blob ${empty_obj_hex} ${dir}/x + 100644 blob ${empty_obj_hex} ${dir}/y + 100644 blob ${empty_obj_hex} ${dir}/z + 120000 blob ${symlink_hex} ${symlink} + EOF + + git update-index --index-info objs <<-EOF && + 100644 $missing_blob file + 120000 $missing_blob symlink + EOF + git update-index --index-info stderr && + test_i18ngrep "unable to read sha1 file of file ($missing_blob)" stderr && + test_i18ngrep "unable to read sha1 file of symlink ($missing_blob)" stderr +' + +test_expect_success 'checkout-index --temp correctly reports error for submodules' ' + git init sub && + test_commit -C sub file && + git submodule add ./sub && + git commit -m sub && + test_must_fail git checkout-index --temp sub 2>stderr && + test_i18ngrep "cannot create temporary submodule sub" stderr +' + test_done