tools/testing/selftests/bpf/prog_tests/sockmap_listen.c | 2 ++ 1 file changed, 2 insertions(+)
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: wangfushuai <wangfushuai@baidu.com>
---
tools/testing/selftests/bpf/prog_tests/sockmap_listen.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c b/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
index 1d98eee7a2c3..f1bdccc7e4e7 100644
--- a/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
+++ b/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
@@ -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");
--
2.36.1
On Sun, Jun 8, 2025 at 7:38 AM wangfushuai <wangfushuai@baidu.com> wrote:
>
> 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: wangfushuai <wangfushuai@baidu.com>
Looks good, but please spell out your name as First Last
in both From and Signed-off
Also use [PATCH bpf-next] in subject
pw-bot: cr
> ---
> tools/testing/selftests/bpf/prog_tests/sockmap_listen.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c b/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
> index 1d98eee7a2c3..f1bdccc7e4e7 100644
> --- a/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
> +++ b/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
> @@ -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");
>
> --
> 2.36.1
>
>> 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: wangfushuai <wangfushuai@baidu.com>
>
> Looks good, but please spell out your name as First Last
> in both From and Signed-off
>
> Also use [PATCH bpf-next] in subject
>
> pw-bot: cr
Will fix and send v2 shortly. Thanks for the review!
--
Regards,
Wang
>> ---
>> tools/testing/selftests/bpf/prog_tests/sockmap_listen.c | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c b/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
>> index 1d98eee7a2c3..f1bdccc7e4e7 100644
>> --- a/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
>> +++ b/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
>> @@ -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");
>>
>> --
>> 2.36.1
© 2016 - 2025 Red Hat, Inc.