* [PATCH bpf-next 1/2] libbpf: fix potential overflow in ring__consume_n()
@ 2024-04-30 20:19 Andrii Nakryiko
2024-04-30 20:19 ` [PATCH bpf-next 2/2] libbpf: fix ring_buffer__consume_n() return result logic Andrii Nakryiko
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Andrii Nakryiko @ 2024-04-30 20:19 UTC (permalink / raw)
To: bpf, ast, daniel, martin.lau; +Cc: andrii, kernel-team
ringbuf_process_ring() return int64_t, while ring__consume_n() assigns
it to int. It's highly unlikely, but possible for ringbuf_process_ring()
to return value larger than INT_MAX, so use int64_t. ring__consume_n()
does check INT_MAX before returning int result to the user.
Fixes: 4d22ea94ea33 ("libbpf: Add ring__consume_n / ring_buffer__consume_n")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
---
tools/lib/bpf/ringbuf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/lib/bpf/ringbuf.c b/tools/lib/bpf/ringbuf.c
index 99e44cf02321..37c5a2d86a78 100644
--- a/tools/lib/bpf/ringbuf.c
+++ b/tools/lib/bpf/ringbuf.c
@@ -405,7 +405,7 @@ int ring__map_fd(const struct ring *r)
int ring__consume_n(struct ring *r, size_t n)
{
- int res;
+ int64_t res;
res = ringbuf_process_ring(r, n);
if (res < 0)
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH bpf-next 2/2] libbpf: fix ring_buffer__consume_n() return result logic
2024-04-30 20:19 [PATCH bpf-next 1/2] libbpf: fix potential overflow in ring__consume_n() Andrii Nakryiko
@ 2024-04-30 20:19 ` Andrii Nakryiko
2024-04-30 21:19 ` Kumar Kartikeya Dwivedi
2024-04-30 21:16 ` [PATCH bpf-next 1/2] libbpf: fix potential overflow in ring__consume_n() Kumar Kartikeya Dwivedi
2024-05-03 0:00 ` patchwork-bot+netdevbpf
2 siblings, 1 reply; 5+ messages in thread
From: Andrii Nakryiko @ 2024-04-30 20:19 UTC (permalink / raw)
To: bpf, ast, daniel, martin.lau; +Cc: andrii, kernel-team
Add INT_MAX check to ring_buffer__consume_n(). We do the similar check
to handle int return result of all these ring buffer APIs in other APIs
and ring_buffer__consume_n() is missing one. This patch fixes this
omission.
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
---
tools/lib/bpf/ringbuf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/lib/bpf/ringbuf.c b/tools/lib/bpf/ringbuf.c
index 37c5a2d86a78..bfd8dac4c0cc 100644
--- a/tools/lib/bpf/ringbuf.c
+++ b/tools/lib/bpf/ringbuf.c
@@ -301,7 +301,7 @@ int ring_buffer__consume_n(struct ring_buffer *rb, size_t n)
if (n == 0)
break;
}
- return res;
+ return res > INT_MAX ? INT_MAX : res;
}
/* Consume available ring buffer(s) data without event polling.
--
2.43.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH bpf-next 1/2] libbpf: fix potential overflow in ring__consume_n()
2024-04-30 20:19 [PATCH bpf-next 1/2] libbpf: fix potential overflow in ring__consume_n() Andrii Nakryiko
2024-04-30 20:19 ` [PATCH bpf-next 2/2] libbpf: fix ring_buffer__consume_n() return result logic Andrii Nakryiko
@ 2024-04-30 21:16 ` Kumar Kartikeya Dwivedi
2024-05-03 0:00 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 5+ messages in thread
From: Kumar Kartikeya Dwivedi @ 2024-04-30 21:16 UTC (permalink / raw)
To: Andrii Nakryiko; +Cc: bpf, ast, daniel, martin.lau, kernel-team
On Tue, 30 Apr 2024 at 22:24, Andrii Nakryiko <andrii@kernel.org> wrote:
>
> ringbuf_process_ring() return int64_t, while ring__consume_n() assigns
> it to int. It's highly unlikely, but possible for ringbuf_process_ring()
> to return value larger than INT_MAX, so use int64_t. ring__consume_n()
> does check INT_MAX before returning int result to the user.
>
> Fixes: 4d22ea94ea33 ("libbpf: Add ring__consume_n / ring_buffer__consume_n")
> Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
> ---
Acked-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH bpf-next 2/2] libbpf: fix ring_buffer__consume_n() return result logic
2024-04-30 20:19 ` [PATCH bpf-next 2/2] libbpf: fix ring_buffer__consume_n() return result logic Andrii Nakryiko
@ 2024-04-30 21:19 ` Kumar Kartikeya Dwivedi
0 siblings, 0 replies; 5+ messages in thread
From: Kumar Kartikeya Dwivedi @ 2024-04-30 21:19 UTC (permalink / raw)
To: Andrii Nakryiko; +Cc: bpf, ast, daniel, martin.lau, kernel-team
On Tue, 30 Apr 2024 at 22:31, Andrii Nakryiko <andrii@kernel.org> wrote:
>
> Add INT_MAX check to ring_buffer__consume_n(). We do the similar check
> to handle int return result of all these ring buffer APIs in other APIs
> and ring_buffer__consume_n() is missing one. This patch fixes this
> omission.
>
> Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
> ---
Acked-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH bpf-next 1/2] libbpf: fix potential overflow in ring__consume_n()
2024-04-30 20:19 [PATCH bpf-next 1/2] libbpf: fix potential overflow in ring__consume_n() Andrii Nakryiko
2024-04-30 20:19 ` [PATCH bpf-next 2/2] libbpf: fix ring_buffer__consume_n() return result logic Andrii Nakryiko
2024-04-30 21:16 ` [PATCH bpf-next 1/2] libbpf: fix potential overflow in ring__consume_n() Kumar Kartikeya Dwivedi
@ 2024-05-03 0:00 ` patchwork-bot+netdevbpf
2 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-05-03 0:00 UTC (permalink / raw)
To: Andrii Nakryiko; +Cc: bpf, ast, daniel, martin.lau, kernel-team
Hello:
This series was applied to bpf/bpf-next.git (master)
by Martin KaFai Lau <martin.lau@kernel.org>:
On Tue, 30 Apr 2024 13:19:51 -0700 you wrote:
> ringbuf_process_ring() return int64_t, while ring__consume_n() assigns
> it to int. It's highly unlikely, but possible for ringbuf_process_ring()
> to return value larger than INT_MAX, so use int64_t. ring__consume_n()
> does check INT_MAX before returning int result to the user.
>
> Fixes: 4d22ea94ea33 ("libbpf: Add ring__consume_n / ring_buffer__consume_n")
> Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
>
> [...]
Here is the summary with links:
- [bpf-next,1/2] libbpf: fix potential overflow in ring__consume_n()
https://git.kernel.org/bpf/bpf-next/c/00f0e08f23fc
- [bpf-next,2/2] libbpf: fix ring_buffer__consume_n() return result logic
https://git.kernel.org/bpf/bpf-next/c/087d757fb473
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-05-03 0:00 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-30 20:19 [PATCH bpf-next 1/2] libbpf: fix potential overflow in ring__consume_n() Andrii Nakryiko
2024-04-30 20:19 ` [PATCH bpf-next 2/2] libbpf: fix ring_buffer__consume_n() return result logic Andrii Nakryiko
2024-04-30 21:19 ` Kumar Kartikeya Dwivedi
2024-04-30 21:16 ` [PATCH bpf-next 1/2] libbpf: fix potential overflow in ring__consume_n() Kumar Kartikeya Dwivedi
2024-05-03 0:00 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox