[PATCH] 3/3 Generic sys_rt_sigsuspend

David Woodhouse dwmw2 at infradead.org
Wed Nov 30 03:09:38 EST 2005


On Tue, 2005-11-29 at 10:53 -0500, Daniel Jacobowitz wrote:
> And, crazy coincidence, I think this will fix the recently reported
> ptrace attach bug.  Right now if you ptrace a process stuck in
> sigsuspend, you can't easily force it to return to userspace.
> I'll test that if these patches are merged.

That seems to be true. What I get with my patches is...

# strace -p `pidof sigsusptest`
Process 1954 attached - interrupt to quit
rt_sigsuspend([])                       = ? ERESTARTNOHAND (To be restarted)
--- SIGALRM (Alarm clock) @ 0 (0) ---
sigreturn()                             = ? (mask now [])
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(4, 64), ...}) = 0
ioctl(1, TCGETS, {B115200 opost isig icanon echo ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x3001f000
write(1, "r is -1\n", 8)                = 8
munmap(0x3001f000, 4096)                = 0
exit_group(8)                           = ?
Process 1954 detached

... whereas without them I get not only a failure to attach, until
there's a signal, but an unexplained SIGSEGV too...

# strace -p `pidof sigsusptest`
Process 3105 attached - interrupt to quit
--- SIGALRM (Alarm clock) @ 0 (0) ---
rt_sigsuspend([])                       = 14
rt_sigsuspend([] <unfinished ...>
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
Process 3105 detached

-- 
dwmw2





More information about the Linuxppc-dev mailing list