diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2014-06-18 20:22:00 +0400 |
---|---|---|
committer | Peter Korsgaard <peter@korsgaard.com> | 2014-06-19 17:58:54 +0200 |
commit | 27a1f09f7b931cac504f7713b844ef56d0444917 (patch) | |
tree | 193ec0a0a49cc500fac28e58915ed93828079ebf /package/strace | |
parent | 94c5ae72034a86b109bb9c2a648b5f24fe295de2 (diff) |
strace: fix ptrace {PEEK, POKE}USER arguments decoding on xtensa
Backported from: 57fac759ca0945f5608ed6a2228c697f8fb67cd6
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Diffstat (limited to 'package/strace')
-rw-r--r-- | package/strace/strace-04-xtensa-sort-values-in-struct_user_offsets.patch | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/package/strace/strace-04-xtensa-sort-values-in-struct_user_offsets.patch b/package/strace/strace-04-xtensa-sort-values-in-struct_user_offsets.patch new file mode 100644 index 000000000..0ef038dbf --- /dev/null +++ b/package/strace/strace-04-xtensa-sort-values-in-struct_user_offsets.patch @@ -0,0 +1,76 @@ +From 57fac759ca0945f5608ed6a2228c697f8fb67cd6 Mon Sep 17 00:00:00 2001 +From: Max Filippov <jcmvbkbc@gmail.com> +Date: Wed, 18 Jun 2014 06:04:06 +0400 +Subject: [PATCH] xtensa: sort values in struct_user_offsets + +Otherwise ptrace syscall argument decoding is wrong: + ptrace(PTRACE_PEEKUSER, 296, syscall_nr, [0x4048eb]) = 0 + ptrace(PTRACE_PEEKUSER, 296, syscall_nr, [0x3fa6cd30]) = 0 + ptrace(PTRACE_PEEKUSER, 296, syscall_nr, [0x8040676d]) = 0 +instead of + ptrace(PTRACE_PEEKUSER, 296, pc, [0x4048eb]) = 0 + ptrace(PTRACE_PEEKUSER, 296, a1, [0x3fa6cd30]) = 0 + ptrace(PTRACE_PEEKUSER, 296, a0, [0x8040676d]) = 0 + +* process.c (struct_user_offsets) [XTENSA]: Sort values. +--- +Backported from: 57fac759ca0945f5608ed6a2228c697f8fb67cd6 + + process.c | 34 +++++++++++++++++----------------- + 1 file changed, 17 insertions(+), 17 deletions(-) + +diff --git a/process.c b/process.c +index a880f9e..2cd0f01 100644 +--- a/process.c ++++ b/process.c +@@ -1865,6 +1865,23 @@ const struct xlat struct_user_offsets[] = { + { 4*33, "sr" }, + #endif + #ifdef XTENSA ++ { REG_A_BASE, "a0" }, ++ { REG_A_BASE+1, "a1" }, ++ { REG_A_BASE+2, "a2" }, ++ { REG_A_BASE+3, "a3" }, ++ { REG_A_BASE+4, "a4" }, ++ { REG_A_BASE+5, "a5" }, ++ { REG_A_BASE+6, "a6" }, ++ { REG_A_BASE+7, "a7" }, ++ { REG_A_BASE+8, "a8" }, ++ { REG_A_BASE+9, "a9" }, ++ { REG_A_BASE+10, "a10" }, ++ { REG_A_BASE+11, "a11" }, ++ { REG_A_BASE+12, "a12" }, ++ { REG_A_BASE+13, "a13" }, ++ { REG_A_BASE+14, "a14" }, ++ { REG_A_BASE+15, "a15" }, ++ { REG_PC, "pc" }, + { SYSCALL_NR, "syscall_nr" }, + { REG_AR_BASE, "ar0" }, + { REG_AR_BASE+1, "ar1" }, +@@ -1937,23 +1954,6 @@ const struct xlat struct_user_offsets[] = { + { REG_WB, "wb" }, + { REG_WS, "ws" }, + { REG_PS, "ps" }, +- { REG_PC, "pc" }, +- { REG_A_BASE, "a0" }, +- { REG_A_BASE+1, "a1" }, +- { REG_A_BASE+2, "a2" }, +- { REG_A_BASE+3, "a3" }, +- { REG_A_BASE+4, "a4" }, +- { REG_A_BASE+5, "a5" }, +- { REG_A_BASE+6, "a6" }, +- { REG_A_BASE+7, "a7" }, +- { REG_A_BASE+8, "a8" }, +- { REG_A_BASE+9, "a9" }, +- { REG_A_BASE+10, "a10" }, +- { REG_A_BASE+11, "a11" }, +- { REG_A_BASE+12, "a12" }, +- { REG_A_BASE+13, "a13" }, +- { REG_A_BASE+14, "a14" }, +- { REG_A_BASE+15, "a15" }, + #endif + + /* Other fields in "struct user" */ +-- +1.8.1.4 + |