]> granicus.if.org Git - strace/commit
When process_vm_readv fails with EPERM, try PTRACE_PEEKDATA
authorDmitry V. Levin <ldv@altlinux.org>
Mon, 30 Mar 2015 15:21:55 +0000 (15:21 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Tue, 31 Mar 2015 15:06:01 +0000 (15:06 +0000)
commitb2893c9e9e84e51d6e11ddae7c6908bb707ddbb2
treeabfdf902a8b57d7753b80df7e7d1b41e02e41449
parent5647cf86fc511fc365675826ab4ff56775d1206b
When process_vm_readv fails with EPERM, try PTRACE_PEEKDATA

process_vm_readv() and ptrace(PTRACE_PEEKDATA) have inconsistent access
control rules wrt traced processes: process_vm_readv() is more likely to
fail with EPERM than ptrace(PTRACE_PEEKDATA) when tracing a process that
has execve'd a privileged executable.

* util.c (umoven, umovestr): If process_vm_readv returned EPERM,
fall back to ptrace(PTRACE_PEEKDATA).

Reported-by: Andrew Guertin <lists@dolphinling.net>
util.c