|
From: Matt Z. <md...@de...> - 2003-12-28 11:30:49
|
On Sun, Dec 28, 2003 at 02:12:40AM -0800, Matt Zimmerman wrote: > So, the sequence of events in handle_trap is this: > > 1. UPT_SYSCALL_NR(regs) == 78 > > 2. ptrace(PTRACE_POKEUSER,...) > > 3. UPT_SYSCALL_NR(regs) == 78 (still OK) > > 4. ptrace(PTRACE_SYSCALL,...) > > 5. UPT_SYSCALL_NR(regs) == 78 (still OK) > > 6. waitpid(pid,...) > > 7. UPT_SYSCALL_NR(regs) == 0 (boom) > > I have no idea why. I added some code to dump the regs struct before and after waitpid, and it turns out that in fact, the syscall element is the only one which is different; the rest of the structure is untouched. Corruption seems unlikely, and the waitpid call certainly shouldn't be touching this...could another thread be clobbering it somehow? -- - mdz |