]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/bpf: fix signedness bug in redir_partial()
authorFushuai Wang <wangfushuai@baidu.com>
Thu, 12 Jun 2025 08:42:08 +0000 (16:42 +0800)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 12 Jun 2025 23:52:43 +0000 (16:52 -0700)
When xsend() returns -1 (error), the check 'n < sizeof(buf)' incorrectly
treats it as success due to unsigned promotion. Explicitly check for -1
first.

Fixes: a4b7193d8efd ("selftests/bpf: Add sockmap test for redirecting partial skb data")
Signed-off-by: Fushuai Wang <wangfushuai@baidu.com>
Link: https://lore.kernel.org/r/20250612084208.27722-1-wangfushuai@baidu.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c

index 1d98eee7a2c3a711950ade30959e3bbf8c78e13d..f1bdccc7e4e79402e60252a03f328dae508fb442 100644 (file)
@@ -924,6 +924,8 @@ static void redir_partial(int family, int sotype, int sock_map, int parser_map)
                goto close;
 
        n = xsend(c1, buf, sizeof(buf), 0);
+       if (n == -1)
+               goto close;
        if (n < sizeof(buf))
                FAIL("incomplete write");