summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorGeliang Tang <tanggeliang@kylinos.cn>2024-05-23 14:50:03 +0800
committerDaniel Borkmann <daniel@iogearbox.net>2024-06-03 19:32:55 +0200
commitde1b5ea789dc28066cc8dc634b6825bd6148f38b (patch)
tree8f9bb70b0f3def3a5da1c521521e09af9322bf64 /tools
parentdcb681b659f2a0a546752730c9daa92dc6120d52 (diff)
selftests/bpf: Check length of recv in test_sockmap
The value of recv in msg_loop may be negative, like EWOULDBLOCK, so it's necessary to check if it is positive before accumulating it to bytes_recvd. Fixes: 16962b2404ac ("bpf: sockmap, add selftests") Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Tested-by: Jakub Sitnicki <jakub@cloudflare.com> Acked-by: John Fastabend <john.fastabend@gmail.com> Link: https://lore.kernel.org/bpf/5172563f7c7b2a2e953cef02e89fc34664a7b190.1716446893.git.tanggeliang@kylinos.cn
Diffstat (limited to 'tools')
-rw-r--r--tools/testing/selftests/bpf/test_sockmap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/tools/testing/selftests/bpf/test_sockmap.c b/tools/testing/selftests/bpf/test_sockmap.c
index e29f8203bd4f..9cba4ec844a5 100644
--- a/tools/testing/selftests/bpf/test_sockmap.c
+++ b/tools/testing/selftests/bpf/test_sockmap.c
@@ -681,7 +681,8 @@ static int msg_loop(int fd, int iov_count, int iov_length, int cnt,
}
}
- s->bytes_recvd += recv;
+ if (recv > 0)
+ s->bytes_recvd += recv;
if (opt->check_recved_len && s->bytes_recvd > total_bytes) {
errno = EMSGSIZE;