summaryrefslogtreecommitdiff
path: root/tests/phdr-corruption.sh
blob: 274d6f1f6ebe1b0a0216a76e3b75efc124733151 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#! /bin/sh -e

PATCHELF="../src/patchelf"
SONAME="phdr-corruption.so"
SCRATCH="scratch/$(basename "$0" .sh)"
SCRATCH_SO="${SCRATCH}/${SONAME}"
READELF=${READELF:-readelf}

rm -rf "${SCRATCH}"
mkdir -p "${SCRATCH}"
cp "${SONAME}" "${SCRATCH}"

"${PATCHELF}" --set-rpath "$(pwd)" "${SCRATCH_SO}"

# Check for PT_PHDR entry VirtAddr corruption
readelfData=$(${READELF} -l "${SCRATCH_SO}" 2>&1)

if [ "$(echo "$readelfData" | grep -c "PHDR")" != 1 ]; then
  # Triggered if PHDR errors appear on stderr
  echo "ERROR: Unexpected number of occurences of PHDR in readelf results!"
  exit 1
fi