diff options
author | jhb <jhb@FreeBSD.org> | 2016-02-15 20:26:40 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2016-02-15 20:26:40 +0000 |
commit | f921347d5d1cb581239a4a64db1da608aaeb4766 (patch) | |
tree | 4f422a97031bdd85c85e040e7845c04648c7e457 /usr.bin | |
parent | 0ec3eae858a1fdf7e164f833c86861aedd9e4c53 (diff) | |
download | FreeBSD-src-f921347d5d1cb581239a4a64db1da608aaeb4766.zip FreeBSD-src-f921347d5d1cb581239a4a64db1da608aaeb4766.tar.gz |
Sign extend the error value for failing Linux/i386 system calls. This
restores the mapping of Linux errors to native FreeBSD errno values after
the refactoring in r288424.
Diffstat (limited to 'usr.bin')
-rw-r--r-- | usr.bin/truss/amd64-linux32.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/usr.bin/truss/amd64-linux32.c b/usr.bin/truss/amd64-linux32.c index 2ede617..873ef01 100644 --- a/usr.bin/truss/amd64-linux32.c +++ b/usr.bin/truss/amd64-linux32.c @@ -115,6 +115,8 @@ amd64_linux32_fetch_retval(struct trussinfo *trussinfo, long *retval, retval[0] = regs.r_rax & 0xffffffff; retval[1] = regs.r_rdx & 0xffffffff; *errorp = !!(regs.r_rflags & PSL_C); + if (*errorp) + retval[0] = (int)retval[0]; if (*errorp) { for (i = 0; i < nitems(bsd_to_linux_errno); i++) { |