[LTP] [PATCH] shell: Fix tst_get_unused_port endianity
Petr Vorel
pvorel@suse.cz
Thu Jun 6 16:30:17 CEST 2019
tst_get_unused_port is a shell helper, therefore it should use host
byte order (we're not expecting this value would be added directly to
sockaddr_in structure, which require network byte order).
Wrap TST_GET_UNUSED_PORT() with ntohs() to achieve it.
Reported-by: Christian Amann <camann@suse.com>
Suggested-by: Cyril Hrubis <chrubis@suse.cz>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
Hi,
I guess we didn't noticed this in shell script as sendfile01 is the only
one not requiring root (dns-stress, tst_net_stress.sh, ssh-stress, ssh-stress03-rmt do require it).
I tested patch with little script (could be easily converted to proper
test placed in lib/newlib_tests/)
export PATH="/opt/ltp/testcases/bin/:$PATH"
i=0
while [ $i -lt 2048 ]; do
for j in ipv4 ipv6; do
for k in stream dgram; do
p="$(tst_get_unused_port $j $k)"
printf "$i ($j $k): $p "
if [ $p -lt 1024 ]; then
echo "(bad)"
exit 1
else
echo "(ok)"
fi
done
done
i=$((i+1))
done
echo "Test was ok"
testcases/lib/tst_get_unused_port.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/testcases/lib/tst_get_unused_port.c b/testcases/lib/tst_get_unused_port.c
index 0173f1634..a843cc6e3 100644
--- a/testcases/lib/tst_get_unused_port.c
+++ b/testcases/lib/tst_get_unused_port.c
@@ -54,6 +54,6 @@ int main(int argc, char *argv[])
return 1;
}
- printf("%d", TST_GET_UNUSED_PORT(family, type));
+ printf("%d", ntohs(TST_GET_UNUSED_PORT(family, type)));
return 0;
}
--
2.21.0
More information about the ltp
mailing list