From b071b23567787d007b8e219b9740e5f3ab51b293 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Tue, 5 May 2020 11:11:57 +0200 Subject: [PATCH] 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. --- bin/tests/system/get_ports.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bin/tests/system/get_ports.sh b/bin/tests/system/get_ports.sh index 30c066b2b4..b2be6ca400 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