Comment 3 for bug 339743

Revision history for this message
Anders Kaseorg (andersk) wrote : Re: Jaunty i386 popen() misbehaves on Lenny 2.6.26-1-amd64 kernel

I reproduced this with a vanilla v2.6.26 kernel (on x86_64 with defconfig). I used git bisect to find the first commit on which the problem is exhibited:

commit 8ab32bb89b5b9bf06147c31947eba65f0f21c3c0
Author: Roland McGrath <email address hidden>
Date: Sun Mar 16 21:57:41 2008 -0700

    x86: ia32 ptrace vs -ENOSYS

    When we're stopped at syscall entry tracing, ptrace can change the %eax
    value from -ENOSYS to something else. If no system call is actually made
    because the syscall number (now in orig_eax) is bad, then the %eax value
    set by ptrace should be returned to the user. But, instead it gets reset
    to -ENOSYS again. This is a regression from the native 32-bit kernel.

    This change fixes it by leaving the return value alone after entry tracing.

    Signed-off-by: Roland McGrath <email address hidden>
    Signed-off-by: Ingo Molnar <email address hidden>