From: Qingshuang Fu <[email protected]>
main() never checks fork() for failure. When fork() returns -1
(EAGAIN/ENOMEM/RLIMIT_NPROC), the !child_pid test is false and the
process falls into server()'s infinite accept() loop with no client ever
connecting, producing empty output. The wrapper script treats an
empty log as a passing test, producing a false positive.
Check fork() for failure with error(), as is done for every other
syscall in this file.
Fixes: af8c8a450bf4 ("selftests: net: Add FIN_ACK processing order related
latency spike test")
Signed-off-by: Qingshuang Fu <[email protected]>
---
tools/testing/selftests/net/fin_ack_lat.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/testing/selftests/net/fin_ack_lat.c
b/tools/testing/selftests/net/fin_ack_lat.c
index 98044e6f9f43..4068f8e227cf 100644
--- a/tools/testing/selftests/net/fin_ack_lat.c
+++ b/tools/testing/selftests/net/fin_ack_lat.c
@@ -143,6 +143,8 @@ int main(int argc, char const *argv[])
fprintf(stderr, "server port: %d\n", ntohs(laddr.sin_port));
child_pid = fork();
+ if (child_pid < 0)
+ error(-1, errno, "fork");
if (!child_pid)
client(ntohs(laddr.sin_port));
else
--
2.25.1