2023-04-05 22:57:06

by Barret Rhoden

[permalink] [raw]
Subject: bpf: ensure all memory is initialized in bpf_get_current_comm

BPF helpers that take an ARG_PTR_TO_UNINIT_MEM must ensure that all of
the memory is set, including beyond the end of the string.

Signed-off-by: Barret Rhoden <[email protected]>
---
kernel/bpf/helpers.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/bpf/helpers.c b/kernel/bpf/helpers.c
index 5b278a38ae58..adffb2f87e44 100644
--- a/kernel/bpf/helpers.c
+++ b/kernel/bpf/helpers.c
@@ -257,7 +257,7 @@ BPF_CALL_2(bpf_get_current_comm, char *, buf, u32, size)
goto err_clear;

/* Verifier guarantees that size > 0 */
- strscpy(buf, task->comm, size);
+ strscpy_pad(buf, task->comm, size);
return 0;
err_clear:
memset(buf, 0, size);
--
2.40.0.348.gf938b09366-goog


2023-04-06 23:26:01

by Alexei Starovoitov

[permalink] [raw]
Subject: Re: bpf: ensure all memory is initialized in bpf_get_current_comm

On Wed, Apr 5, 2023 at 3:53 PM Barret Rhoden <[email protected]> wrote:
>
> BPF helpers that take an ARG_PTR_TO_UNINIT_MEM must ensure that all of
> the memory is set, including beyond the end of the string.
>
> Signed-off-by: Barret Rhoden <[email protected]>

The patch looks fine, but please rebase to bpf-next and resubmit
with [PATCH bpf-next] subj, so it goes through BPF CI.

See Documentation/bpf/bpf_devel_QA.rst

2023-04-07 00:21:04

by Barret Rhoden

[permalink] [raw]
Subject: [PATCH bpf-next] bpf: ensure all memory is initialized in bpf_get_current_comm

BPF helpers that take an ARG_PTR_TO_UNINIT_MEM must ensure that all of
the memory is set, including beyond the end of the string.

Signed-off-by: Barret Rhoden <[email protected]>
---
kernel/bpf/helpers.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/bpf/helpers.c b/kernel/bpf/helpers.c
index 6be16db9f188..b6a5cda5bb59 100644
--- a/kernel/bpf/helpers.c
+++ b/kernel/bpf/helpers.c
@@ -258,7 +258,7 @@ BPF_CALL_2(bpf_get_current_comm, char *, buf, u32, size)
goto err_clear;

/* Verifier guarantees that size > 0 */
- strscpy(buf, task->comm, size);
+ strscpy_pad(buf, task->comm, size);
return 0;
err_clear:
memset(buf, 0, size);
--
2.40.0.577.gac1e443424-goog

2023-04-07 02:03:23

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH bpf-next] bpf: ensure all memory is initialized in bpf_get_current_comm

Hello:

This patch was applied to bpf/bpf-next.git (master)
by Alexei Starovoitov <[email protected]>:

On Thu, 6 Apr 2023 20:18:08 -0400 you wrote:
> BPF helpers that take an ARG_PTR_TO_UNINIT_MEM must ensure that all of
> the memory is set, including beyond the end of the string.
>
> Signed-off-by: Barret Rhoden <[email protected]>
> ---
> kernel/bpf/helpers.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Here is the summary with links:
- [bpf-next] bpf: ensure all memory is initialized in bpf_get_current_comm
https://git.kernel.org/bpf/bpf-next/c/f3f213497797

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html