From: Ondřej Surý Date: Tue, 5 May 2020 09:11:57 +0000 (+0200) Subject: Fix get_ports.sh script X-Git-Tag: v9.17.2~91^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b071b23567787d007b8e219b9740e5f3ab51b293;p=thirdparty%2Fbind9.git Fix get_ports.sh script There were two errors: 1. get_random() function was returning random number with leading zeros that could lead the shell to interpret the number as octal value instead of decimal. The surrounding whitespace was also causing problems. 2. The calculation of the port was off, it was adding the whole range and not just the min port to the base. --- diff --git a/bin/tests/system/get_ports.sh b/bin/tests/system/get_ports.sh index 30c066b2b42..b2be6ca400b 100755 --- a/bin/tests/system/get_ports.sh +++ b/bin/tests/system/get_ports.sh @@ -18,9 +18,10 @@ statefile=get_ports.state port_min=5001 port_max=32767 -get_random() { - dd if=/dev/urandom bs=1 count=2 2>/dev/null | od -tu2 -An -} +get_random() ( + # shellcheck disable=SC2005,SC2046 + echo $(dd if=/dev/urandom bs=1 count=2 2>/dev/null | od -tu2 -An) | sed -e 's/^0*//' +) get_port() { tries=10 @@ -36,7 +37,8 @@ get_port() { port="$1" else port_range=$((port_max-port_min)) - port=$(($(get_random)%port_range+port_range)) + port_random=$(get_random) + port=$((port_random%port_range+port_min)) fi fi