• Oleg Nesterov's avatar
    uprobes: Restrict valid_vma(false) to skip VM_SHARED vmas · e40cfce6
    Oleg Nesterov authored
    valid_vma(false) ignores ->vm_flags, this is not actually right.
    We should never try to write into MAP_SHARED mapping, this can
    confuse an apllication which actually writes to ->vm_file.
    
    With this patch valid_vma(false) ignores VM_WRITE only but checks
    other (immutable) bits checked by valid_vma(true). This can also
    speedup uprobe_munmap() and uprobe_unregister().
    
    Note: even after this patch _unregister can confuse the probed
    application if it does mprotect(PROT_WRITE) after _register and
    installs "int3", but this is hardly possible to avoid and this
    doesn't differ from gdb case.
    Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
    Acked-by: default avatarSrikar Dronamraju <srikar@linux.vnet.ibm.com>
    e40cfce6
uprobes.c 38.5 KB