From 0aaa2f7401bb8e0aff719702886cb2feeee175d8 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Wed, 13 Aug 2025 00:11:45 -0400 Subject: [PATCH] Add a number of tests for binaries that used to crash patchelf Most now error out nicely, as of 0.16, but some still cause a crash. Fix #132 Progress on #133 (have tests, failure remains) Fix #134 Progress on #135 (have test, failure remains) --- tests/invalid-elf.sh | 100 +++++++++++++++++- .../invalid-elf/invalid-null-ptr-issue-134-0 | Bin 0 -> 9842 bytes .../invalid-elf/invalid-null-ptr-issue-134-1 | Bin 0 -> 10333 bytes .../invalid-shrink-rpath-issue-132 | Bin 0 -> 10313 bytes .../invalid-string-index-issue-135 | Bin 0 -> 10312 bytes tests/invalid-elf/invalid-strlen-issue-133-0 | Bin 0 -> 10312 bytes tests/invalid-elf/invalid-strlen-issue-133-1 | Bin 0 -> 10324 bytes tests/invalid-elf/invalid-strlen-issue-133-2 | Bin 0 -> 10361 bytes tests/invalid-elf/invalid-strlen-issue-133-3 | Bin 0 -> 10312 bytes tests/invalid-elf/invalid-strlen-issue-133-4 | Bin 0 -> 10335 bytes tests/invalid-elf/invalid-strlen-issue-133-5 | Bin 0 -> 4689 bytes 11 files changed, 95 insertions(+), 5 deletions(-) create mode 100644 tests/invalid-elf/invalid-null-ptr-issue-134-0 create mode 100644 tests/invalid-elf/invalid-null-ptr-issue-134-1 create mode 100644 tests/invalid-elf/invalid-shrink-rpath-issue-132 create mode 100644 tests/invalid-elf/invalid-string-index-issue-135 create mode 100644 tests/invalid-elf/invalid-strlen-issue-133-0 create mode 100644 tests/invalid-elf/invalid-strlen-issue-133-1 create mode 100644 tests/invalid-elf/invalid-strlen-issue-133-2 create mode 100644 tests/invalid-elf/invalid-strlen-issue-133-3 create mode 100644 tests/invalid-elf/invalid-strlen-issue-133-4 create mode 100644 tests/invalid-elf/invalid-strlen-issue-133-5 diff --git a/tests/invalid-elf.sh b/tests/invalid-elf.sh index cc8577c2..7145c793 100755 --- a/tests/invalid-elf.sh +++ b/tests/invalid-elf.sh @@ -21,6 +21,67 @@ TEST_CASES="invalid-shrstrtab-idx invalid-shrstrtab-size invalid-shrstrtab-zero # Issue #64 regression test. Test ELF provided by issue submitter. TEST_CASES=$TEST_CASES' invalid-phdr-issue-64' +# Issue #132 regression test. Test ELF provided by issue submitter. +TEST_CASES=$TEST_CASES' invalid-shrink-rpath-issue-132' + +# Issue #133 regression test. Test ELFs provided by issue submitter. +set -x +for i in $(seq 0 5); do + # Not yet fixed! + if [ "$i" = 3 ]; then continue; fi + TEST_CASES=$TEST_CASES' invalid-strlen-issue-133-'$i +done +set +x + +# Issue #134 regression test. Test ELFs provided by issue submitter. +set -x +for i in $(seq 0 1); do + TEST_CASES=$TEST_CASES' invalid-null-ptr-issue-134-'$i +done +set +x + +# Not yet fixed! +# Issue #132 regression test. Test ELF provided by issue submitter. +#TEST_CASES=$TEST_CASES' invalid-string-index-issue-135' + +# Some ELFs are immediately recognized as invalid. Others, we need to +# attempt an operation to notice the problem. + +# shellcheck disable=SC2034 +invalid_shrstrtab_idx_CMDS='' +# shellcheck disable=SC2034 +invalid_shrstrtab_size_CMDS='' +# shellcheck disable=SC2034 +invalid_shrstrtab_zero_CMDS='' +# shellcheck disable=SC2034 +invalid_shrstrtab_nonterm_CMDS='' +# shellcheck disable=SC2034 +invalid_shdr_name_CMDS='' +# shellcheck disable=SC2034 +invalid_phdr_offset_CMDS='' +# shellcheck disable=SC2034 +invalid_phdr_issue_64_CMDS='' +# shellcheck disable=SC2034 +invalid_shrink_rpath_issue_132_CMDS='--shrink-rpath' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_0_CMDS='--shrink-rpath' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_1_CMDS='--shrink-rpath' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_2_CMDS='--shrink-rpath' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_3_CMDS='--shrink-rpath' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_4_CMDS='--shrink-rpath' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_5_CMDS='--shrink-rpath' +# shellcheck disable=SC2034 +invalid_null_ptr_issue_134_0_CMDS='--shrink-rpath' +# shellcheck disable=SC2034 +invalid_null_ptr_issue_134_1_CMDS='--shrink-rpath' +# shellcheck disable=SC2034 +invalid_string_index_issue_135_CMDS='--shrink-rpath' + # shellcheck disable=SC2034 invalid_shrstrtab_idx_MSG='data region extends past file end' # shellcheck disable=SC2034 @@ -35,24 +96,53 @@ invalid_shdr_name_MSG='data region extends past file end' invalid_phdr_offset_MSG='data region extends past file end' # shellcheck disable=SC2034 invalid_phdr_issue_64_MSG='program header table out of bounds' +# shellcheck disable=SC2034 +invalid_shrink_rpath_issue_132_MSG='data region extends past file end' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_0_MSG='section name offset out of bounds' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_1_MSG='data region extends past file end' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_2_MSG='string table is not zero terminated' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_3_MSG='not sure yet' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_4_MSG='data region extends past file end' +# shellcheck disable=SC2034 +invalid_strlen_issue_133_5_MSG='string table size is zero' +# shellcheck disable=SC2034 +invalid_null_ptr_issue_134_0_MSG='no section headers' +# shellcheck disable=SC2034 +invalid_null_ptr_issue_134_1_MSG='no section headers' +# shellcheck disable=SC2034 +invalid_string_index_issue_135_MSG='no sure yet' FAILED_TESTS="" for tcase in $TEST_CASES; do if [ ! -r "$TEST_DIR/$tcase" ]; then - echo "Cannot read test case: $tcase" - exit 1 + echo "Cannot read test case: $tcase" + exit 1 fi - ../src/patchelf --output /dev/null "$TEST_DIR/$tcase" && res=$? || res=$? + var=$(echo "$tcase-CMDS" | tr '-' '_') + cmds= + eval "cmds=\${$var}" + + # Want the word-splitting, no arrays in POSIX shell + # shellcheck disable=SC2086 + ../src/patchelf $cmds --output /dev/null "$TEST_DIR/$tcase" && res=$? || res=$? if killed_by_signal "$res"; then - FAILED_TESTS="$FAILED_TESTS $tcase" + FAILED_TESTS="$FAILED_TESTS $tcase" fi var=$(echo "$tcase-MSG" | tr '-' '_') msg= eval "msg=\${$var}" - ../src/patchelf --output /dev/null "$TEST_DIR/$tcase" 2>&1 | + + # Want the word-splitting, no arrays in POSIX shell + # shellcheck disable=SC2086 + ../src/patchelf $cmds --output /dev/null "$TEST_DIR/$tcase" 2>&1 | grep "$msg" >/dev/null 2>/dev/null done diff --git a/tests/invalid-elf/invalid-null-ptr-issue-134-0 b/tests/invalid-elf/invalid-null-ptr-issue-134-0 new file mode 100644 index 0000000000000000000000000000000000000000..3c2cd1786843d24dc06eac7a67bc6d2f49e93947 GIT binary patch literal 9842 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 literal 0 HcmV?d00001 diff --git a/tests/invalid-elf/invalid-null-ptr-issue-134-1 b/tests/invalid-elf/invalid-null-ptr-issue-134-1 new file mode 100644 index 0000000000000000000000000000000000000000..26d5c24cfeeb38a7a4d6ba57ac7a889be32263cd GIT binary patch literal 10333 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 G;eP;SPiQ&- literal 0 HcmV?d00001 diff --git a/tests/invalid-elf/invalid-string-index-issue-135 b/tests/invalid-elf/invalid-string-index-issue-135 new file mode 100644 index 0000000000000000000000000000000000000000..6398ba9c1b9f531a9c484b284ebe4123da3983f3 GIT binary patch literal 10312 zcmeHNeQaCR6~9hWV$$~6V^n0ctdHqsYhZEWwxMbHSlqhZ%P@?sE+BO!bz(b7apTB- z?ivK6$VuTXxQjG|n1lpkuuTZ0YGbf5Rty1(5JLsZ#3&!)OMNXx>&9ryO7VW@zIz^1eJEpa%(zOgL$UP06Im7I2rGG zVy-v|upW>4 zlzr@*rYkuH{w8txOk^tgmQuuMu%NDY*Rcw7w|Wj)n0(iOgzkg zQe_x#S7rKs(&wD{jmT44g@=v>%CsvfMh9E6~)DXahWb!5c1YIbxrXg9 zu0{Jt6?~n7iNx3`OYS+P(tlMgHXuVWWqs=vpOMcz)$!y0Ti}vjK3|MCpn$}vj$Cdf z-qquG73wPa+ZCVDUuL=)E;C+R#V;y8<1JNu9zU+Wp^CqrCIb@Vb5#Vk>q-f+4Vg;+ z7oY03FrLhU3ak5nlj3vyI~AXCCMmB-Rqlve(MBT7uRa^bE4Y-cwtqM3D*4;h*^<#< z#Y#`L{rga_;o+lk`OM5`X~kn;K4TFLK0M6#t24C!f8;+6F8R;=M#XRZFMLpBdKT|W zzOMMX;$!_y38C)N%I{Z^qq)!a`Rvbs6BJ1~60Z;LH_xLy+A8fg&eus?G|rbGUUZ@S zW$U)2XBvxo|s$fQ4<~1(UwD&Q2tV|w8Zaj2Z=u&jzC9L_- znoxAj>OaFHC_7`tY}m{nFsF<}2O|H6)_7u5t7Q#iOwJOKLfn{V+F?Tv7L$Ml?}X$y z28$8sEa%b!y`E)v#qX>{kMy3=Z~~_A0!()C>OC0V;~;>pj3+3 zd!55_mXW_t!QZ9i@9tay{z8YdA42(~vvUtDE3`iYE|2YRQIE0RL$hddY!9H;9ov_X zOOC@EtKR;*bElM!7#-zFAGVL=e3+8v+I68Hh1P|x2z5_52_lsjAJzlrxBWiW)O81F zml!FUcGPGyZ77N$KAjQdOlyg+Ic!|wYmOM}ea%s0$k%+Uu?6D3<~xmXiT4<{OT5q6 zF7Y9w2%IuE8ZkEtBgR1?4u7{W$3Rcj%EvI6W3y}JYQa1~pZ8*J?W{BWP(h>Q4;FWZ zjk-1zodZW?R34|)NweXnc`8;uB4 zox3+QnAbf70{wvBoU45U%dB4|UluM4I20JLDtBYMt9~iZ(~zwe;W~-rpnk z{)l}DQ$18V^<^wikGb@f+0By4_$^CM4}OX4qnM9RQyH7khlKbX(fRBxU<#;?j>2=*4~1v5-!pesy?5MG@2C2Ccm(X6O{miG z<%KZNPV(FTRVvXs7Mg#R*7!Z&%pZHVi0_-IYRIugpFgWvt~G9} z?b7r@-EwWgjWa@8+t!mpT1USA5^am8_6|>j)`7Z^wqUuYLl%AGevtk1pl1ulhQ~9~F?59b7n&jt2 zT4&~XKFWFUGTDP3OpEFC<%odu<>?J%!AZn>`AQvs44$nXwtZL;9L(=ew1;Tvm9xLcTjuR~K|wDX*X2 z|EQEE5xx_pKR_w*9VOpQ@SP_gVEFD*eRc&MS}Cb3BDa8dt;+G;1^0{Z5V_2EiF_x< z`WRUuK9ka4@X!VKev^>zG%;bhovOt_RpvWW9Ghf2+mS*i@WppLCs5_*T9sGVrGHC; zy@@5~w8z_f67B6vdzYLOjJGdc+>=ZumoAFM;!79yCX$Pn1mcOFTptlmyZh#^i$JzN zYh|ohj|dD5T8Ye%2n?pJL?E=htHp}-sZ!ryF3^)3NX1(Q;vzt${#dqO1meSk+2M^Y zS{b)xQzDZcNDodabfYbkNX3Xih6XGV7)rUXKwlaeE3p~xB$^oK+2qgNulbP7Y zM0bB2d@i~C?pP)h8z#p02ROf>7h*&uThJo?iftU|b!$bSC!3XSb;}r}1_rN075W7mMZ>5P*zm){{x09ow5J` literal 0 HcmV?d00001 diff --git a/tests/invalid-elf/invalid-strlen-issue-133-0 b/tests/invalid-elf/invalid-strlen-issue-133-0 new file mode 100644 index 0000000000000000000000000000000000000000..e222c0d8cfe1eab63f9fb366e620d23e4dc8a552 GIT binary patch literal 10312 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 l%CAxyux#AAX1&^nv}V1l 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 C%y@AC literal 0 HcmV?d00001 diff --git a/tests/invalid-elf/invalid-strlen-issue-133-2 b/tests/invalid-elf/invalid-strlen-issue-133-2 new file mode 100644 index 0000000000000000000000000000000000000000..e9a458d83fa8020818dd0a543b5a5e58c3e18ec4 GIT binary patch literal 10361 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 bb2zL|`Pp8avi7mt<$5%$<#H%En&N)}(>aGa literal 0 HcmV?d00001 diff --git a/tests/invalid-elf/invalid-strlen-issue-133-3 b/tests/invalid-elf/invalid-strlen-issue-133-3 new file mode 100644 index 0000000000000000000000000000000000000000..62b0d07aff0952fe3e0b98cc00ea0b1d819b644e GIT binary patch literal 10312 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 literal 0 HcmV?d00001