]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Aug 2025 10:08:44 +0000 (12:08 +0200)
[ Upstream commit 6a4bd31f680a1d1cf06492fe6dc4f08da09769e6 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c

index 84d59419e4eb5bd08b4e8632f6bfeaa8f417ccdb..a6d8aa8c2a9ac940816cc1767702b8976d06bbae 100644 (file)
@@ -894,6 +894,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");