Skip to content

Commit ba938c5

Browse files
committed
Merge remote-tracking branch 'upstream/0.15-maintenance' into 0.15-maintenance
2 parents fa67b61 + db84a3a commit ba938c5

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

tests/invalid-elf.sh

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#! /bin/sh -u
1+
#! /bin/sh -ue
22

33
# Usage: killed_by_signal $?
44
#
@@ -18,6 +18,24 @@ TEST_DIR=$(dirname "$(readlink -f "$0")")/invalid-elf
1818
TEST_CASES="invalid-shrstrtab-idx invalid-shrstrtab-size invalid-shrstrtab-zero
1919
invalid-shrstrtab-nonterm invalid-shdr-name invalid-phdr-offset"
2020

21+
# Issue #64 regression test. Test ELF provided by issue submitter.
22+
TEST_CASES=$TEST_CASES' invalid-phdr-issue-64'
23+
24+
# shellcheck disable=SC2034
25+
invalid_shrstrtab_idx_MSG='data region extends past file end'
26+
# shellcheck disable=SC2034
27+
invalid_shrstrtab_size_MSG='data region extends past file end'
28+
# shellcheck disable=SC2034
29+
invalid_shrstrtab_zero_MSG='data region extends past file end'
30+
# shellcheck disable=SC2034
31+
invalid_shrstrtab_nonterm_MSG='data region extends past file end'
32+
# shellcheck disable=SC2034
33+
invalid_shdr_name_MSG='data region extends past file end'
34+
# shellcheck disable=SC2034
35+
invalid_phdr_offset_MSG='data region extends past file end'
36+
# shellcheck disable=SC2034
37+
invalid_phdr_issue_64_MSG='program header table out of bounds'
38+
2139
FAILED_TESTS=""
2240

2341
for tcase in $TEST_CASES; do
@@ -26,10 +44,16 @@ for tcase in $TEST_CASES; do
2644
exit 1
2745
fi
2846

29-
../src/patchelf --output /dev/null "$TEST_DIR/$tcase"
30-
if killed_by_signal $?; then
47+
../src/patchelf --output /dev/null "$TEST_DIR/$tcase" && res=$? || res=$?
48+
if killed_by_signal "$res"; then
3149
FAILED_TESTS="$FAILED_TESTS $tcase"
3250
fi
51+
52+
var=$(echo "$tcase-MSG" | tr '-' '_')
53+
msg=
54+
eval "msg=\${$var}"
55+
../src/patchelf --output /dev/null "$TEST_DIR/$tcase" 2>&1 |
56+
grep "$msg" >/dev/null 2>/dev/null
3357
done
3458

3559
if [ -z "$FAILED_TESTS" ]; then
324 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)