• Alexander Graf's avatar
    linux-user: fix wait* syscall status returns · 5379557b
    Alexander Graf authored
    When calling wait4 or waitpid with a status pointer and WNOHANG, the
    syscall can potentially not modify the status pointer input. Now if we
    have guest code like:
    
      int status = 0;
      waitpid(pid, &status, WNOHANG);
      if (status)
         <breakage>
    
    then we have to make sure that in case status did not change we actually
    return the guest's initialized status variable instead of our own uninitialized.
    We fail to do so today, as we proxy everything through an uninitialized status
    variable which for me ended up always containing the last error code.
    
    This patch fixes some test cases when building yast2-core in OBS for ARM.
    Signed-off-by: default avatarAlexander Graf <agraf@suse.de>
    Signed-off-by: default avatarRiku Voipio <riku.voipio@linaro.org>
    5379557b
syscall.c 256 KB