Thread (12 messages) flat view 12 messages, 3 authors, 2025-02-20

Re: Add Morton,Peter and David for discussion//Re: [PATCH -next] uprobes: fix two zero old_folio bugs in __replace_page()

From: Tong Tiangen <hidden>
Date: 2025-02-20 02:31:35
Also in: bpf, linux-mm, linux-perf-users, lkml


在 2025/2/20 0:12, David Hildenbrand 写道:
On 19.02.25 16:22, Oleg Nesterov wrote:
quoted
On 02/18, Tong Tiangen wrote:
quoted
OK, Before your rewrite last merged, How about i change the solution to
just reject them immediately after get_user_page_vma_remote()?
I agree, uprobe_write_opcode() should simply fail if 
is_zero_page(old_page).
Yes. That's currently only syzkaller that triggers it, not some sane use 
case.
OK, change as follows:
--- a/kernel/events/uprobes.c
+++ b/kernel/events/uprobes.c
@@ -506,6 +506,12 @@ int uprobe_write_opcode(struct arch_uprobe 
*auprobe, struct mm_struct *mm,
         if (ret <= 0)
                 goto put_old;

+       if (WARN(is_zero_page(old_page),
+                "uprobe should never work on zero page\n")) {
+               ret = -EINVAL;
+               goto put_old;
+       }
+
         if (WARN(!is_register && PageCompound(old_page),
                  "uprobe unregister should never work on compound 
page\n")) {
                 ret = -EINVAL;

If ok, i will send v2 soon.

Thanks,
Tong.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help