|
@@ -210,7 +210,9 @@ sysexit_from_sys_call:
|
|
|
sti
|
|
|
movl %eax,%esi /* second arg, syscall return value */
|
|
|
cmpl $-MAX_ERRNO,%eax /* is it an error ? */
|
|
|
- setbe %al /* 1 if so, 0 if not */
|
|
|
+ jbe 1f
|
|
|
+ movslq %eax, %rsi /* if error sign extend to 64 bits */
|
|
|
+1: setbe %al /* 1 if error, 0 if not */
|
|
|
movzbl %al,%edi /* zero-extend that into %edi */
|
|
|
call __audit_syscall_exit
|
|
|
movq RAX-ARGOFFSET(%rsp),%rax /* reload syscall return value */
|