On 31/03/17 17:09, James Cowgill wrote: > If a restartable syscall is called using the indirect o32 syscall > handler - eg: syscall(__NR_waitid, ...), then it is possible for the > incorrect arguments to be passed to the syscall after it has been > restarted. This is because the syscall handler tries to shift all the > registers down one place in pt_regs so that when the syscall is restarted, > the "real" syscall is called instead. Unfortunately it only shifts the > arguments passed in registers, not the arguments on the user stack. This > causes the 4th argument to be duplicated when the syscall is restarted. > > Fix by removing all the pt_regs shifting so that the indirect syscall > handler is called again when the syscall is restarted. The comment "some > syscalls like execve get their arguments from struct pt_regs" is long > out of date so this should now be safe. > > Signed-off-by: James Cowgill Ping? The first patch in this series has been applied, but this patch has not been. Thanks, James