From 8c9182f7abc788a327da2f83c5239a753c03047c Mon Sep 17 00:00:00 2001 From: Heiko Becker Date: Mon, 24 Apr 2023 22:10:10 +0200 Subject: [PATCH] Also respect a prefixed nm and strings too (cherry picked from commit 1ab6930d154b4bd6cee8f2751dd4429d92a4a67d) --- tests/shared-rpath.sh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/tests/shared-rpath.sh b/tests/shared-rpath.sh index 8e6e26f..1fa46b9 100755 --- a/tests/shared-rpath.sh +++ b/tests/shared-rpath.sh @@ -2,7 +2,8 @@ PATCHELF=$(readlink -f "../src/patchelf") SCRATCH="scratch/$(basename "$0" .sh)" -READELF=${READELF:-readelf} +NM=${NM:-nm} +STRINGS=${STRINGS:-strings} LIB_NAME="${PWD}/libshared-rpath.so" @@ -11,11 +12,11 @@ mkdir -p "${SCRATCH}" cd "${SCRATCH}" has_x() { - strings "$1" | grep -c "XXXXXXXX" + ${STRINGS} "$1" | grep -c "XXXXXXXX" } -nm -D "${LIB_NAME}" | grep a_symbol_name -previous_cnt="$(strings "${LIB_NAME}" | grep -c a_symbol_name)" +${NM} -D "${LIB_NAME}" | grep a_symbol_name +previous_cnt="$(${STRINGS} "${LIB_NAME}" | grep -c a_symbol_name)" echo "#### Number of a_symbol_name strings in the library: $previous_cnt" @@ -25,12 +26,12 @@ echo "#### Rename the rpath to something larger than the original" "${PATCHELF}" --set-rpath a_very_big_rpath_that_is_larger_than_original --output liblarge-rpath.so "${LIB_NAME}" echo "#### Checking symbol is still there" -nm -D liblarge-rpath.so | grep a_symbol_name +${NM} -D liblarge-rpath.so | grep a_symbol_name echo "#### Checking there are no Xs" [ "$(has_x liblarge-rpath.so)" -eq 0 ] || exit 1 -current_cnt="$(strings liblarge-rpath.so | grep -c a_symbol_name)" +current_cnt="$(${STRINGS} liblarge-rpath.so | grep -c a_symbol_name)" echo "#### Number of a_symbol_name strings in the modified library: $current_cnt" [ "$current_cnt" -eq "$previous_cnt" ] || exit 1 @@ -40,10 +41,10 @@ echo "#### Rename the rpath to something shorter than the original" "${PATCHELF}" --set-rpath shrt_rpth --output libshort-rpath.so "${LIB_NAME}" echo "#### Checking symbol is still there" -nm -D libshort-rpath.so | grep a_symbol_name +${NM} -D libshort-rpath.so | grep a_symbol_name echo "#### Number of a_symbol_name strings in the modified library: $current_cnt" -current_cnt="$(strings libshort-rpath.so | grep -c a_symbol_name)" +current_cnt="$(${STRINGS} libshort-rpath.so | grep -c a_symbol_name)" [ "$current_cnt" -eq "$previous_cnt" ] || exit 1 echo "#### Now liblarge-rpath.so should have its own rpath, so it should be allowed to taint it"