On 08/06, Sumanth Korikkar wrote:
>
> On Thu, Aug 06, 2026 at 01:01:11PM +0200, Oleg Nesterov wrote:
> >
> > But your change in install_breakpoint() essentually reverts that commit?
> > If uprobe_register() -> register_for_each_vma() finds a VM_MAYEXEC vma
> > without VM_EXEC valid_vma() will return true, but then install_breakpoint()
> > will fail anyway.
>
> Initially non exec vma will be ignored via uprobe_register(),
> install_breakpoint() will reject non vma mappings initially.
>
> As far as I understand,  if mprotect(PROT_EXEC) is performed later by a
> process, it adds VM_EXEC flag to vma and calls vma_complete() via
> vma_modify_flags(). uprobe_mmap() will then call install_breakpoint()
> and now it should succeed because VM_EXEC is set.

Heh, I am stupid the 2nd time in the same thread ;)

Sumanth, thanks for correcting me! It seems that I forgot everything about
these code paths.

Then this change makes more sense, but the VM_EXEC check needs the comment
to explain this all.

However, I personally still don't think it's worth "fixing". But I leave the
decision to Andrii and Jiri who (unlike me) understand how USDT's are used.

Oleg.


Reply via email to