• David Howells's avatar
    [PATCH] NOMMU: Permit ptrace to ignore non-PROT_WRITE VMAs in NOMMU mode · d00c7b99
    David Howells authored
    Permit ptrace to modify a section that's non-shared but is marked
    unwritable, such as is obtained by mapping the text segment of an ELF-FDPIC
    executable binary with into a binary that's being ptraced[*].
    
    [*] Under NOMMU conditions ptrace causes read-only MAP_PRIVATE mmaps to become
        totally private copies because if a private mapping was actually shared
        then the debugging setting breakpoints in it would potentially crash
        other processes.
    
    This is done by using the VM_MAYWRITE flag rather than the VM_WRITE flag
    when deciding whether to permit a write.
    
    Without this patch a debugger can't set breakpoints in the mapped text
    sections of executables that are mapped read-only private, even if the
    mmap() syscall has taken a private copy because PT_PTRACED is set.
    
    In addition, VM_MAYREAD is used instead of VM_READ for similar reasons.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    d00c7b99
nommu.c 29.8 KB