From: Madhavan Srinivasan <maddy@linux.ibm.com>
To: mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu
Cc: linuxppc-dev@lists.ozlabs.org,
Madhavan Srinivasan <maddy@linux.ibm.com>,
Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Subject: [PATCH v3] powerpc/xmon: Fix tmpstr length check in scanhex
Date: Mon, 26 Aug 2024 12:12:17 +0530 [thread overview]
Message-ID: <20240826064217.46658-1-maddy@linux.ibm.com> (raw)
If a function name is greater than 63 char long, xmon command
may not find them. For example, here is a test that
executed an illegal instruction in a kernel function and one of
call stack function has name >63 char long,
cpu 0x0: Vector: 700 (Program Check) at [c00000000a6577e0]
pc: c0000000001aacb8: check__allowed__function__name__for__symbol__r4+0x8/0x10
lr: c00000000019c1e0: check__allowed__function__name__for__symbol__r1+0x20/0x40
sp: c00000000a657a80
msr: 800000000288b033
current = 0xc00000000a439900
paca = 0xc000000003e90000 irqmask: 0x03 irq_happened: 0x01
.....
[link register ] c00000000019c1e0 check__allowed__function__name__for__symbol__r1+0x20/0x40
[c00000000a657a80] c00000000a439900 (unreliable)
[c00000000a657aa0] c0000000001021d8 check__allowed__function__name__for__symbol__r2_resolution_symbol+0x38/0x4c
[c00000000a657ac0] c00000000019b424 power_pmu_event_init+0xa4/0xa50
and when executing a dump instruction (di) command for long function name,
xmon fails to find the function symbol
0:mon> di $check__allowed__function__name__for__symbol__r2_resolution_symbol
unknown symbol 'check__allowed__function__name__for__symbol__r2_resolution_symb'
0000000000000000 ********
This is because, in the scanhex(), tmpstr loop index is checked only for a upper bound
of 63. Proposed fix is to replace the upper bound value with "(KSYM_NAME_LEN-1)"
With fix:
0:mon> di $check__allowed__function__name__for__symbol__r2_resolution_symbol
c0000000001021a0 3c4c0249 addis r2,r12,585
c0000000001021a4 3842ae60 addi r2,r2,-20896
c0000000001021a8 7c0802a6 mflr r0
c0000000001021ac 60000000 nop
.....
Reported-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Closes: https://lore.kernel.org/linuxppc-dev/CANiq72=QeTgtZL4k9=4CJP6C_Hv=rh3fsn3B9S3KFoPXkyWk3w@mail.gmail.com/
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
---
Changelog v2:
- Fixed the loop upper limit from KSYM_NAME_LEN to
(KSYM_NAME_LEN - 1) since last index is initialized
with zero at the end of the loop. Thanks mpe for
pointing it out.
- Checkpatch script was complaining about the format style
ERROR: spaces required around that '=' (ctx:VxV)
#67: FILE: arch/powerpc/xmon/xmon.c:3546:
+ for (i=0; i < (KSYM_NAME_LEN - 1); i++) {
^
so have fixed the same.
Changelog v1:
- Updated commit message based on Miguel's review comments
arch/powerpc/xmon/xmon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index bd4813bad317..e6cddbb2305f 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3543,7 +3543,7 @@ scanhex(unsigned long *vp)
}
} else if (c == '$') {
int i;
- for (i=0; i<63; i++) {
+ for (i = 0; i < (KSYM_NAME_LEN - 1); i++) {
c = inchar();
if (isspace(c) || c == '\0') {
termch = c;
--
2.45.2
next reply other threads:[~2024-08-26 6:43 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-26 6:42 Madhavan Srinivasan [this message]
2024-09-06 11:52 ` [PATCH v3] powerpc/xmon: Fix tmpstr length check in scanhex Michael Ellerman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240826064217.46658-1-maddy@linux.ibm.com \
--to=maddy@linux.ibm.com \
--cc=christophe.leroy@csgroup.eu \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=miguel.ojeda.sandonis@gmail.com \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.