Skip to content

Commit 8d3188d

Browse files
bors[bot]Mic92
andauthored
Merge #463
463: Apply fixes from shellcheck r=Mic92 a=Mic92 Co-authored-by: Jörg Thalheim <[email protected]>
2 parents 365e1e0 + a187790 commit 8d3188d

32 files changed

+275
-282
lines changed

.github/workflows/publish.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
needs: [build_windows]
4848
runs-on: windows-latest
4949
steps:
50-
- uses: actions/checkout@v2
50+
- uses: actions/checkout@v3
5151
- uses: actions/download-artifact@v3
5252
with:
5353
name: patchelf

tests/add-debug-tag.sh

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
#! /bin/sh -e
2-
SCRATCH=scratch/$(basename $0 .sh)
2+
SCRATCH=scratch/$(basename "$0" .sh)
33
READELF=${READELF:-readelf}
44

5-
rm -rf ${SCRATCH}
6-
mkdir -p ${SCRATCH}
5+
rm -rf "${SCRATCH}"
6+
mkdir -p "${SCRATCH}"
77

8-
cp libsimple.so ${SCRATCH}/
8+
cp libsimple.so "${SCRATCH}"/
99

1010
# check there is no DT_DEBUG tag
11-
debugTag=$($READELF -d ${SCRATCH}/libsimple.so)
11+
debugTag=$($READELF -d "${SCRATCH}/libsimple.so")
1212
echo ".dynamic before: $debugTag"
1313
if echo "$debugTag" | grep -q DEBUG; then
1414
echo "failed --add-debug-tag test. Expected no line with (DEBUG), got: $debugTag"
1515
exit 1
1616
fi
1717

1818
# set DT_DEBUG
19-
../src/patchelf --add-debug-tag ${SCRATCH}/libsimple.so
19+
../src/patchelf --add-debug-tag "${SCRATCH}/libsimple.so"
2020

2121
# check there is DT_DEBUG tag
22-
debugTag=$($READELF -d ${SCRATCH}/libsimple.so)
22+
debugTag=$($READELF -d "${SCRATCH}/libsimple.so")
2323
echo ".dynamic before: $debugTag"
2424
if ! echo "$debugTag" | grep -q DEBUG; then
2525
echo "failed --add-debug-tag test. Expected line with (DEBUG), got: $debugTag"

tests/add-rpath.sh

+13-12
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
#! /bin/sh -e
2-
SCRATCH=scratch/$(basename $0 .sh)
2+
SCRATCH=scratch/$(basename "$0" .sh)
33

4-
rm -rf ${SCRATCH}
5-
mkdir -p ${SCRATCH}
6-
mkdir -p ${SCRATCH}/libsA
7-
mkdir -p ${SCRATCH}/libsB
4+
rm -rf "${SCRATCH}"
5+
mkdir -p "${SCRATCH}"
6+
mkdir -p "${SCRATCH}/libsA"
7+
mkdir -p "${SCRATCH}/libsB"
88

9-
cp main ${SCRATCH}/
10-
cp libfoo.so ${SCRATCH}/libsA/
11-
cp libbar.so ${SCRATCH}/libsB/
9+
cp main "${SCRATCH}"/
10+
cp libfoo.so "${SCRATCH}/libsA/"
11+
cp libbar.so "${SCRATCH}/libsB/"
1212

13-
../src/patchelf --force-rpath --add-rpath $(pwd)/${SCRATCH}/libsA ${SCRATCH}/main
14-
../src/patchelf --force-rpath --add-rpath $(pwd)/${SCRATCH}/libsB ${SCRATCH}/main
13+
../src/patchelf --force-rpath --add-rpath "$(pwd)/${SCRATCH}/libsA" "${SCRATCH}/main"
14+
../src/patchelf --force-rpath --add-rpath "$(pwd)/${SCRATCH}/libsB" "${SCRATCH}/main"
1515

1616
if test "$(uname)" = FreeBSD; then
17-
export LD_LIBRARY_PATH=$(pwd)/${SCRATCH}/libsB
17+
LD_LIBRARY_PATH="$(pwd)/${SCRATCH}/libsB"
18+
export LD_LIBRARY_PATH
1819
fi
1920

2021
exitCode=0
21-
(cd ${SCRATCH} && ./main) || exitCode=$?
22+
(cd "${SCRATCH}" && ./main) || exitCode=$?
2223

2324
if test "$exitCode" != 46; then
2425
echo "bad exit code!"

tests/args-from-file.sh

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
#! /bin/sh -e
2-
SCRATCH=scratch/$(basename $0 .sh)
2+
SCRATCH=scratch/$(basename "$0" .sh)
33

4-
rm -rf ${SCRATCH}
5-
mkdir -p ${SCRATCH}
4+
rm -rf "${SCRATCH}"
5+
mkdir -p "${SCRATCH}"
66

7-
cp main ${SCRATCH}/
8-
RANDOM_PATH=$(pwd)/${SCRATCH}/$RANDOM
9-
echo -n ${RANDOM_PATH} >> ${SCRATCH}/add-rpath
7+
cp main "${SCRATCH}"/
8+
SOME_PATH=$(pwd)/${SCRATCH}/some-path
9+
printf "%s" "$SOME_PATH" >> "${SCRATCH}"/add-rpath
1010

11-
! ../src/patchelf --print-rpath ${SCRATCH}/main | grep $RANDOM_PATH
12-
../src/patchelf --add-rpath @${SCRATCH}/add-rpath ${SCRATCH}/main
13-
../src/patchelf --print-rpath ${SCRATCH}/main | grep $RANDOM_PATH
11+
../src/patchelf --print-rpath "${SCRATCH}"/main | grep "$SOME_PATH" && exit 1
12+
../src/patchelf --add-rpath @"${SCRATCH}"/add-rpath "${SCRATCH}"/main
13+
../src/patchelf --print-rpath "${SCRATCH}"/main | grep "$SOME_PATH"
1414

1515
# should print error message and fail
16-
../src/patchelf --set-rpath @${SCRATCH}/does-not-exist ${SCRATCH}/main 2>&1 | grep "getting info about"
16+
../src/patchelf --set-rpath @"${SCRATCH}"/does-not-exist "${SCRATCH}"/main 2>&1 | grep "getting info about"

tests/big-dynstr.sh

+13-12
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
#! /bin/sh -e
2-
SCRATCH=scratch/$(basename $0 .sh)
2+
SCRATCH=scratch/$(basename "$0" .sh)
33

4-
rm -rf ${SCRATCH}
5-
mkdir -p ${SCRATCH}
6-
mkdir -p ${SCRATCH}/libsA
7-
mkdir -p ${SCRATCH}/libsB
4+
rm -rf "${SCRATCH}"
5+
mkdir -p "${SCRATCH}"
6+
mkdir -p "${SCRATCH}/libsA"
7+
mkdir -p "${SCRATCH}/libsB"
88

9-
cp big-dynstr ${SCRATCH}/
10-
cp libfoo.so ${SCRATCH}/libsA/
11-
cp libbar.so ${SCRATCH}/libsB/
9+
cp big-dynstr "${SCRATCH}/"
10+
cp libfoo.so "${SCRATCH}/libsA/"
11+
cp libbar.so "${SCRATCH}/libsB/"
1212

13-
oldRPath=$(../src/patchelf --print-rpath ${SCRATCH}/big-dynstr)
13+
oldRPath=$(../src/patchelf --print-rpath "${SCRATCH}/big-dynstr")
1414
if test -z "$oldRPath"; then oldRPath="/oops"; fi
15-
../src/patchelf --force-rpath --set-rpath $oldRPath:$(pwd)/${SCRATCH}/libsA:$(pwd)/${SCRATCH}/libsB ${SCRATCH}/big-dynstr
15+
../src/patchelf --force-rpath --set-rpath "$oldRPath:$(pwd)/${SCRATCH}/libsA:$(pwd)/${SCRATCH}/libsB" "${SCRATCH}/big-dynstr"
1616

1717
if test "$(uname)" = FreeBSD; then
18-
export LD_LIBRARY_PATH=$(pwd)/${SCRATCH}/libsB
18+
LD_LIBRARY_PATH="$(pwd)/${SCRATCH}/libsB"
19+
export LD_LIBRARY_PATH
1920
fi
2021

2122
exitCode=0
22-
cd ${SCRATCH} && ./big-dynstr || exitCode=$?
23+
cd "${SCRATCH}" && ./big-dynstr || exitCode=$?
2324

2425
if test "$exitCode" != 46; then
2526
echo "bad exit code!"

tests/build-id.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#! /bin/sh -e
2-
SCRATCH=scratch/$(basename $0 .sh)
2+
SCRATCH=scratch/$(basename "$0" .sh)
33
READELF=${READELF:-readelf}
44

55
rm -rf "${SCRATCH}"

tests/change-abi.sh

+15-30
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,29 @@
11
#! /bin/sh -e
22

3-
SCRATCH=scratch/$(basename $0 .sh)
3+
SCRATCH=scratch/$(basename "$0" .sh)
44

5-
rm -rf ${SCRATCH}
6-
mkdir -p ${SCRATCH}
5+
rm -rf "${SCRATCH}"
6+
mkdir -p "${SCRATCH}"
77

8-
cp simple-pie ${SCRATCH}/simple-pie
8+
cp simple-pie "${SCRATCH}/simple-pie"
99

1010
# Save the old OS ABI
11-
OLDABI=`../src/patchelf --print-os-abi ${SCRATCH}/simple-pie`
11+
OLDABI=$(../src/patchelf --print-os-abi "${SCRATCH}/simple-pie")
1212
# Ensure it's not empty
1313
test -n "$OLDABI"
1414

1515
# Change OS ABI and verify it has been changed
16-
{
17-
echo "System V"
18-
echo "HP-UX"
19-
echo "NetBSD"
20-
echo "Linux"
21-
echo "GNU Hurd"
22-
echo "Solaris"
23-
echo "AIX"
24-
echo "IRIX"
25-
echo "FreeBSD"
26-
echo "Tru64"
27-
echo "OpenBSD"
28-
echo "OpenVMS"
29-
} | {
30-
while IFS="\n" read ABI; do
31-
echo "Set OS ABI to '$ABI'..."
32-
../src/patchelf --set-os-abi "$ABI" ${SCRATCH}/simple-pie
33-
34-
echo "Check is OS ABI is '$ABI'..."
35-
NEWABI=`../src/patchelf --print-os-abi ${SCRATCH}/simple-pie`
36-
test "$NEWABI" = "$ABI"
37-
done
38-
}
16+
for ABI in "System V" "HP-UX" "NetBSD" "Linux" "GNU Hurd" "Solaris" "AIX" "IRIX" "FreeBSD" "Tru64" "OpenBSD" "OpenVMS"; do
17+
echo "Set OS ABI to '$ABI'..."
18+
../src/patchelf --set-os-abi "$ABI" "${SCRATCH}/simple-pie"
19+
20+
echo "Check is OS ABI is '$ABI'..."
21+
NEWABI=$(../src/patchelf --print-os-abi "${SCRATCH}/simple-pie")
22+
test "$NEWABI" = "$ABI"
23+
done
3924

4025
# Reset OS ABI to the saved one
41-
../src/patchelf --set-os-abi "$OLDABI" ${SCRATCH}/simple-pie
26+
../src/patchelf --set-os-abi "$OLDABI" "${SCRATCH}/simple-pie"
4227

4328
# Verify we still can run the executable
44-
${SCRATCH}/simple-pie
29+
"${SCRATCH}/simple-pie"

tests/contiguous-note-sections.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /bin/sh -e
22

3-
SCRATCH=scratch/$(basename $0 .sh)
3+
SCRATCH=scratch/$(basename "$0" .sh)
44

55
rm -rf "${SCRATCH}"
66
mkdir -p "${SCRATCH}"
@@ -10,4 +10,4 @@ cp contiguous-note-sections "${SCRATCH}/"
1010
# Running --set-interpreter on this binary should not produce the following
1111
# error:
1212
# patchelf: cannot normalize PT_NOTE segment: non-contiguous SHT_NOTE sections
13-
../src/patchelf --set-interpreter ld-linux-x86-64.so.2 ${SCRATCH}/contiguous-note-sections
13+
../src/patchelf --set-interpreter ld-linux-x86-64.so.2 "${SCRATCH}/contiguous-note-sections"

tests/empty-note.sh

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#! /bin/sh -e
22

3-
SCRATCH=scratch/$(basename $0 .sh)
3+
SCRATCH=scratch/$(basename "$0" .sh)
44

5-
rm -rf ${SCRATCH}
6-
mkdir -p ${SCRATCH}
7-
cp $(dirname $(readlink -f $0))/empty-note ${SCRATCH}/
5+
rm -rf "${SCRATCH}"
6+
mkdir -p "${SCRATCH}"
7+
cp "$(dirname "$(readlink -f "$0")")/empty-note" "${SCRATCH}/"
88

99
# Running --set-interpreter on this binary should not produce the following
1010
# error:
1111
# patchelf: cannot normalize PT_NOTE segment: non-contiguous SHT_NOTE sections
12-
../src/patchelf --set-interpreter ld-linux-x86-64.so.2 ${SCRATCH}/empty-note
12+
../src/patchelf --set-interpreter ld-linux-x86-64.so.2 "${SCRATCH}/empty-note"

tests/endianness.sh

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
#! /bin/sh -e
2-
SCRATCH=scratch/$(basename $0 .sh)
2+
SCRATCH=scratch/$(basename "$0" .sh)
33
PATCHELF="../src/patchelf"
44

55
for arch in ppc64 ppc64le; do
6-
rm -rf ${SCRATCH}
7-
mkdir -p ${SCRATCH}
6+
rm -rf "${SCRATCH}"
7+
mkdir -p "${SCRATCH}"
88

9-
cp ${srcdir}/endianness/${arch}/main ${srcdir}/endianness/${arch}/libtest.so ${SCRATCH}/
9+
cp "${srcdir}/endianness/${arch}/main" "${srcdir}/endianness/${arch}/libtest.so" "${SCRATCH}/"
1010

1111
rpath="${PWD}/${SCRATCH}"
1212

1313
# set rpath to scratch dir
14-
${PATCHELF} --output ${SCRATCH}/main-rpath --set-rpath $rpath ${SCRATCH}/main
14+
${PATCHELF} --output "${SCRATCH}/main-rpath" --set-rpath "$rpath" "${SCRATCH}/main"
1515

1616
# attempt to shrink rpath, should not result in empty rpath
17-
${PATCHELF} --output ${SCRATCH}/main-shrunk --shrink-rpath --debug ${SCRATCH}/main-rpath
17+
${PATCHELF} --output "${SCRATCH}/main-shrunk" --shrink-rpath --debug "${SCRATCH}/main-rpath"
1818

1919
# check whether rpath is still present
20-
if ! ${PATCHELF} --print-rpath ${SCRATCH}/main-shrunk | grep -q "$rpath"; then
20+
if ! ${PATCHELF} --print-rpath "${SCRATCH}/main-shrunk" | grep -q "$rpath"; then
2121
echo "rpath was removed for ${arch}"
2222
exit 1
2323
fi

tests/force-rpath.sh

+16-12
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,33 @@
11
#! /bin/sh -e
2-
SCRATCH=scratch/$(basename $0 .sh)
2+
SCRATCH=scratch/$(basename "$0" .sh)
33
OBJDUMP=${OBJDUMP:-objdump}
44

5-
rm -rf ${SCRATCH}
6-
mkdir -p ${SCRATCH}
5+
rm -rf "${SCRATCH}"
6+
mkdir -p "${SCRATCH}"
77

88
SCRATCHFILE=${SCRATCH}/libfoo.so
9-
cp libfoo.so $SCRATCHFILE
9+
cp libfoo.so "$SCRATCHFILE"
1010

1111
doit() {
12-
echo patchelf $*
13-
../src/patchelf $* $SCRATCHFILE
12+
set +x
13+
../src/patchelf "$@" "$SCRATCHFILE"
14+
set -x
1415
}
1516

1617
expect() {
17-
out=$(echo $($OBJDUMP -x $SCRATCHFILE | grep PATH))
18+
out=$("$OBJDUMP" -x "$SCRATCHFILE" | grep PATH || true)
1819

19-
if [ "$out" != "$*" ]; then
20-
echo "Expected '$*' but got '$out'"
21-
exit 1
22-
fi
20+
for i in $out; do
21+
if [ "$i" != "$1" ]; then
22+
echo "Expected '$*' but got '$out'"
23+
exit 1
24+
fi
25+
shift
26+
done
2327
}
2428

2529
doit --remove-rpath
26-
expect
30+
expect ""
2731
doit --set-rpath foo
2832
expect RUNPATH foo
2933
doit --force-rpath --set-rpath foo

tests/grow-file.sh

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
#! /bin/sh -e
22

3-
SCRATCH=scratch/$(basename $0 .sh)
3+
SCRATCH=scratch/$(basename "$0" .sh)
44

5-
rm -rf ${SCRATCH}
6-
mkdir -p ${SCRATCH}
5+
rm -rf "${SCRATCH}"
6+
mkdir -p "${SCRATCH}"
77

8-
cp simple-pie ${SCRATCH}/simple-pie
8+
cp simple-pie "${SCRATCH}/simple-pie"
99

1010
# Add a 40MB rpath
11-
tr -cd 'a-z0-9' < /dev/urandom | dd count=40 bs=1000000 > ${SCRATCH}/foo.bin
11+
tr -cd 'a-z0-9' < /dev/urandom | dd count=40 bs=1000000 > "${SCRATCH}/foo.bin"
1212

1313
# Grow the file
14-
../src/patchelf --add-rpath @${SCRATCH}/foo.bin ${SCRATCH}/simple-pie
14+
../src/patchelf --add-rpath @"${SCRATCH}/foo.bin" "${SCRATCH}/simple-pie"
1515
# Make sure we can still run it
16-
${SCRATCH}/simple-pie
16+
"${SCRATCH}/simple-pie"

tests/invalid-elf.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
# by a signal. This works because the exit code of processes that were
77
# killed by a signal is 128 plus the signal number.
88
killed_by_signal() {
9-
[ $1 -ge 128 ]
9+
[ "$1" -ge 128 ]
1010
}
1111

1212

1313
# The directory containing all our input files.
14-
TEST_DIR=$(dirname $(readlink -f $0))/invalid-elf
14+
TEST_DIR=$(dirname "$(readlink -f "$0")")/invalid-elf
1515

1616
# Each test case is listed here. The names should roughly indicate
1717
# what makes the given ELF file invalid.

tests/no-gnu-hash.sh

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
#! /bin/sh -e
2-
SCRATCH=scratch/$(basename $0 .sh)
2+
SCRATCH=scratch/$(basename "$0" .sh)
33
STRIP=${STRIP:-strip}
44

5-
rm -rf ${SCRATCH}
6-
mkdir -p ${SCRATCH}
5+
rm -rf "${SCRATCH}"
6+
mkdir -p "${SCRATCH}"
77

8-
cp simple ${SCRATCH}/
8+
cp simple "${SCRATCH}/"
99

10-
${STRIP} --remove-section=.gnu.hash ${SCRATCH}/simple
10+
${STRIP} --remove-section=.gnu.hash "${SCRATCH}/simple"
1111

1212
# Check if patchelf handles binaries with GNU_HASH in dynamic section but
1313
# without .gnu.hash section
14-
../src/patchelf --set-interpreter /oops ${SCRATCH}/simple
14+
../src/patchelf --set-interpreter /oops "${SCRATCH}/simple"

tests/no-rpath-pie-powerpc.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ fi
3030
# Tests for powerpc PIE endianness regressions
3131
readelfData=$(${READELF} -l ${SCRATCH}/no-rpath 2>&1)
3232

33-
if [ $(echo "$readelfData" | grep --count "PHDR") != 1 ]; then
33+
if [ $(echo "$readelfData" | grep "PHDR" | wc -l) != 1 ]; then
3434
# Triggered if PHDR errors appear on stderr
3535
echo "Unexpected number of occurences of PHDR in readelf results"
3636
exit 1

0 commit comments

Comments
 (0)