Messages in this thread | | | Subject | Re: [PATCH] tracing/kprobes: Check whether get_kretprobe() returns NULL in kretprobe_dispatcher() | From | Daniel Borkmann <> | Date | Wed, 8 Jun 2022 14:38:39 +0200 |
| |
On 5/31/22 12:00 AM, Steven Rostedt wrote: > On May 30, 2022 9:33:23 PM GMT+02:00, Daniel Borkmann <daniel@iogearbox.net> wrote: >> On 5/27/22 5:55 PM, Masami Hiramatsu (Google) wrote: >>> From: Masami Hiramatsu (Google) <mhiramat@kernel.org> >>> >>> There is a small chance that get_kretprobe(ri) returns NULL in >>> kretprobe_dispatcher() when another CPU unregisters the kretprobe >>> right after __kretprobe_trampoline_handler(). >>> >>> To avoid this issue, kretprobe_dispatcher() checks the get_kretprobe() >>> return value again. And if it is NULL, it returns soon because that >>> kretprobe is under unregistering process. >>> >>> This issue has been introduced when the kretprobe is decoupled >>> from the struct kretprobe_instance by commit d741bf41d7c7 >>> ("kprobes: Remove kretprobe hash"). Before that commit, the >>> struct kretprob_instance::rp directly points the kretprobe >>> and it is never be NULL. >>> >>> Reported-by: Yonghong Song <yhs@fb.com> >>> Fixes: d741bf41d7c7 ("kprobes: Remove kretprobe hash") >>> Cc: stable@vger.kernel.org >>> Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> >> >> Steven, I presume you'll pick this fix up? > > I'm currently at Embedded/Kernel Recipes, but yeah, I'll take a look at it. (Just need to finish my slides first ;-)
Ok, thanks. If I don't hear back I presume you'll pick it up then.
| |