]> granicus.if.org Git - strace/commitdiff
syscall.c: set errno if syscall is tampered
authorEugene Syromyatnikov <evgsyr@gmail.com>
Wed, 7 Feb 2018 01:17:18 +0000 (02:17 +0100)
committerDmitry V. Levin <ldv@altlinux.org>
Sat, 10 Feb 2018 01:33:48 +0000 (01:33 +0000)
syscall.c

index 81f762cddbad17f5386af3f9aae9bc6c7f25b18d..79e9986126ad4bb4265b50c05e60870330cabd2b 100644 (file)
--- a/syscall.c
+++ b/syscall.c
@@ -1255,7 +1255,9 @@ get_syscall_result(struct tcb *tcp)
        if (get_syscall_result_regs(tcp) < 0)
                return -1;
        tcp->u_error = 0;
-       get_error(tcp, !(tcp->s_ent->sys_flags & SYSCALL_NEVER_FAILS));
+       get_error(tcp,
+                 !(tcp->s_ent->sys_flags & SYSCALL_NEVER_FAILS)
+                       || syscall_tampered(tcp));
 
        return 1;
 }