* [PATCH] bpf: use vmemdup_user instead of kvmalloc and copy_from_user
@ 2022-03-22 11:28 Yihao Han
2022-03-22 21:11 ` Andrii Nakryiko
0 siblings, 1 reply; 2+ messages in thread
From: Yihao Han @ 2022-03-22 11:28 UTC (permalink / raw)
To: Steven Rostedt, Ingo Molnar, Alexei Starovoitov, Daniel Borkmann,
Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song,
John Fastabend, KP Singh, netdev, bpf, linux-kernel
Cc: kernel, Yihao Han
fix memdup_user.cocci warning:
kernel/trace/bpf_trace.c:2450:12-20: WARNING opportunity
for vmemdup_user
Signed-off-by: Yihao Han <hanyihao@vivo.com>
---
kernel/trace/bpf_trace.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
index 7fa2ebc07f60..aff2461c1ea2 100644
--- a/kernel/trace/bpf_trace.c
+++ b/kernel/trace/bpf_trace.c
@@ -2447,13 +2447,9 @@ int bpf_kprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *pr
ucookies = u64_to_user_ptr(attr->link_create.kprobe_multi.cookies);
if (ucookies) {
- cookies = kvmalloc(size, GFP_KERNEL);
- if (!cookies) {
- err = -ENOMEM;
- goto error;
- }
- if (copy_from_user(cookies, ucookies, size)) {
- err = -EFAULT;
+ cookies = vmemdup_user(ucookies, size);
+ if (IS_ERR(cookies)) {
+ err = PTR_ERR(cookies);
goto error;
}
}
--
2.17.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] bpf: use vmemdup_user instead of kvmalloc and copy_from_user
2022-03-22 11:28 [PATCH] bpf: use vmemdup_user instead of kvmalloc and copy_from_user Yihao Han
@ 2022-03-22 21:11 ` Andrii Nakryiko
0 siblings, 0 replies; 2+ messages in thread
From: Andrii Nakryiko @ 2022-03-22 21:11 UTC (permalink / raw)
To: Yihao Han
Cc: Steven Rostedt, Ingo Molnar, Alexei Starovoitov, Daniel Borkmann,
Andrii Nakryiko, Martin KaFai Lau, Song Liu, Yonghong Song,
John Fastabend, KP Singh, Networking, bpf, open list, kernel
On Tue, Mar 22, 2022 at 4:29 AM Yihao Han <hanyihao@vivo.com> wrote:
>
> fix memdup_user.cocci warning:
> kernel/trace/bpf_trace.c:2450:12-20: WARNING opportunity
> for vmemdup_user
>
> Signed-off-by: Yihao Han <hanyihao@vivo.com>
> ---
> kernel/trace/bpf_trace.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c
> index 7fa2ebc07f60..aff2461c1ea2 100644
> --- a/kernel/trace/bpf_trace.c
> +++ b/kernel/trace/bpf_trace.c
> @@ -2447,13 +2447,9 @@ int bpf_kprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *pr
>
> ucookies = u64_to_user_ptr(attr->link_create.kprobe_multi.cookies);
> if (ucookies) {
> - cookies = kvmalloc(size, GFP_KERNEL);
> - if (!cookies) {
> - err = -ENOMEM;
> - goto error;
> - }
> - if (copy_from_user(cookies, ucookies, size)) {
> - err = -EFAULT;
> + cookies = vmemdup_user(ucookies, size);
does kvfree() handle ERR_PTR() values properly? I doubt so. Did you
validate your change or just blindly applied some tool?
> + if (IS_ERR(cookies)) {
> + err = PTR_ERR(cookies);
> goto error;
> }
> }
> --
> 2.17.1
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-03-22 21:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-22 11:28 [PATCH] bpf: use vmemdup_user instead of kvmalloc and copy_from_user Yihao Han
2022-03-22 21:11 ` Andrii Nakryiko
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).