]> granicus.if.org Git - strace/commitdiff
Move shuffle_scno() invocation to get_scno
authorEugene Syromyatnikov <evgsyr@gmail.com>
Wed, 31 Jan 2018 19:06:31 +0000 (20:06 +0100)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 9 Feb 2018 22:11:50 +0000 (22:11 +0000)
* linux/aarch64/get_scno.c (arch_get_scno): Remove shuffle_scno call.
* linux/arm/get_scno.c (arch_get_scno): Remove shuffle_scno calls.
* syscall.c (get_scno): Call shuffle_scno after arch_get_scno.

linux/aarch64/get_scno.c
linux/arm/get_scno.c
syscall.c

index 0a57ddcee8c2fa26a02654e7ca5b084a4b732f69..350f32fbbd2cb5e24fed6435bc7f64cc20293b24 100644 (file)
@@ -13,7 +13,6 @@ arch_get_scno(struct tcb *tcp)
                        /* We are in 32-bit mode */
                        /* Note: we don't support OABI, unlike 32-bit ARM build */
                        scno = arm_regs.ARM_r7;
-                       scno = shuffle_scno(scno);
                        break;
        }
 
index 5f68069239e71887262b1d93aabea6825471ba90..8412076619d5b92e42a2c73123669d5eff21b92b 100644 (file)
@@ -67,8 +67,6 @@ scno_in_r7:
 
 #endif
 
-       scno = shuffle_scno(scno);
-
        /*
         * Do some sanity checks to figure out
         * whether it's really a syscall entry.
@@ -77,8 +75,7 @@ scno_in_r7:
                if (debug_flag)
                        error_msg("pid %d stray syscall exit:"
                                  " ARM_ip = %ld, scno = %ld",
-                                 tcp->pid, arm_regs.ARM_ip,
-                                 shuffle_scno(scno));
+                                 tcp->pid, arm_regs.ARM_ip, scno);
                return 0;
        }
 
index a02a534f7f059f172cb23e7ef2d452e27acfdeef..f0f85554a22afbb113b994f8ac47b80a8d732335 100644 (file)
--- a/syscall.c
+++ b/syscall.c
@@ -1209,6 +1209,8 @@ get_scno(struct tcb *tcp)
        if (rc != 1)
                return rc;
 
+       tcp->scno = shuffle_scno(tcp->scno);
+
        if (scno_is_valid(tcp->scno)) {
                tcp->s_ent = &sysent[tcp->scno];
                tcp->qual_flg = qual_flags(tcp->scno);
@@ -1228,7 +1230,7 @@ get_scno(struct tcb *tcp)
                set_tcb_priv_data(tcp, s, free_sysent_buf);
 
                debug_msg("pid %d invalid syscall %#" PRI_klx,
-                         tcp->pid, tcp->scno);
+                         tcp->pid, shuffle_scno(tcp->scno));
        }
 
        /*