diff options
author | Tao Chen <chen.dylane@linux.dev> | 2025-07-04 00:37:00 +0800 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2025-07-07 08:53:59 -0700 |
commit | 3413bc0cf16e38db53830c837b4bf639fb2126ef (patch) | |
tree | ff761a4b08a519d5071ad20324ea889766b723b6 | |
parent | 192e3aa145292bad69f1d702ab21755ae07dda40 (diff) |
bpf: Clean code with bpf_copy_to_user()
No logic change, use bpf_copy_to_user() to clean code.
Signed-off-by: Tao Chen <chen.dylane@linux.dev>
Acked-by: Yonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/r/20250703163700.677628-1-chen.dylane@linux.dev
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
-rw-r--r-- | kernel/bpf/syscall.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index 7db7182a3057..3f36bfe13266 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -5344,21 +5344,10 @@ static int bpf_task_fd_query_copy(const union bpf_attr *attr, if (put_user(zero, ubuf)) return -EFAULT; - } else if (input_len >= len + 1) { - /* ubuf can hold the string with NULL terminator */ - if (copy_to_user(ubuf, buf, len + 1)) - return -EFAULT; } else { - /* ubuf cannot hold the string with NULL terminator, - * do a partial copy with NULL terminator. - */ - char zero = '\0'; - - err = -ENOSPC; - if (copy_to_user(ubuf, buf, input_len - 1)) - return -EFAULT; - if (put_user(zero, ubuf + input_len - 1)) - return -EFAULT; + err = bpf_copy_to_user(ubuf, buf, input_len, len); + if (err == -EFAULT) + return err; } } |