]> granicus.if.org Git - strace/commit
ia64: do not bail out in get_syscall_args if umove fails with EPERM
authorDmitry V. Levin <ldv@altlinux.org>
Wed, 24 Jan 2018 01:56:15 +0000 (01:56 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 24 Jan 2018 01:56:15 +0000 (01:56 +0000)
commitc7e8fc0e63937c7896c0ad4fd2cdcb9868472df4
tree2a6fb5c94cc0bf6ee29d463ca93d6f6d561f10b6
parent5fcdae5359829a63bc1cfbb5fc63a5bfde2a949d
ia64: do not bail out in get_syscall_args if umove fails with EPERM

If the kernel contains commit 84d77d3f06e7e8dea057d10e8ec77ad71f721be3,
both PTRACE_PEEKDATA and process_vm_readv become unavailable when the
process dumpable flag is cleared, on ia64 this results to all syscall
arguments being unavailable.

Recognize this situation and do not treat it as get_syscall_args error
because the latter leaves the tracee in a ptrace stop.

This condition used to be triggered by prctl-dumpable test that caused
strace to hang indefinitely.

* linux/ia64/get_syscall_args.c (get_syscall_args): Do not bail out
if umove fails.
* tests/prctl-dumpable.c [__ia64__]: Skip the test.
linux/ia64/get_syscall_args.c
tests/prctl-dumpable.c