Commit 9eab71bd authored by Kui-Feng Lee's avatar Kui-Feng Lee Committed by Martin KaFai Lau

selftests/bpf: fix the incorrect verification of port numbers.

Check port numbers before calling htons().

According to Dan Carpenter's report, Smatch identified incorrect port
number checks. It is expected that the returned port number is an integer,
with negative numbers indicating errors. However, the value was mistakenly
verified after being translated by htons().

Major changes from v1:

 - Move the variable 'port' to the same line of 'err'.

Fixes: 539c7e67 ("selftests/bpf: Verify that the cgroup_skb filters receive expected packets.")
Reported-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/bpf/cafd6585-d5a2-4096-b94f-7556f5aa7737@moroto.mountain/Acked-by: default avatarYonghong Song <yonghong.song@linux.dev>
Signed-off-by: default avatarKui-Feng Lee <thinker.li@gmail.com>
Link: https://lore.kernel.org/r/20230804165831.173627-1-thinker.li@gmail.comSigned-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
parent 21ce6abe
......@@ -110,11 +110,12 @@ static int connect_client_server_v6(int client_fd, int listen_fd)
.sin6_family = AF_INET6,
.sin6_addr = IN6ADDR_LOOPBACK_INIT,
};
int err;
int err, port;
addr.sin6_port = htons(get_sock_port_v6(listen_fd));
if (addr.sin6_port < 0)
port = get_sock_port_v6(listen_fd);
if (port < 0)
return -1;
addr.sin6_port = htons(port);
err = connect(client_fd, (struct sockaddr *)&addr, sizeof(addr));
if (err < 0) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment