]> granicus.if.org Git - strace/commitdiff
linux/x86_64/get_error.c: do not sign-extend if no error happened
authorEugene Syromyatnikov <evgsyr@gmail.com>
Wed, 7 Feb 2018 01:19:06 +0000 (02:19 +0100)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 9 Feb 2018 01:16:13 +0000 (01:16 +0000)
linux/x86_64/get_error.c

index 440fdc74a0a9a0a7b0807725884687f5333fc0d0..ac47ab58ac8e39937a7e462b91cd5dce964f42d4 100644 (file)
@@ -20,6 +20,9 @@ get_error(struct tcb *tcp, const bool check_errno)
                tcp->u_rval = -1;
                tcp->u_error = -rax;
        } else {
-               tcp->u_rval = rax;
+               if (x86_io.iov_len == sizeof(i386_regs))
+                       tcp->u_rval = (uint32_t) rax;
+               else
+                       tcp->u_rval = rax;
        }
 }