Hi, qiwu
Thank you for the update.
On Mon, Jul 15, 2024 at 11:52 AM <devel-request(a)lists.crash-utility.osci.io>
wrote:
Date: Sun, 14 Jul 2024 11:38:27 -0000
From: qiwu.chen(a)transsion.com
Subject: [Crash-utility] Re: [PATCH] arm64: fix a potential segfault
in arm64_unwind_frame
To: devel(a)lists.crash-utility.osci.io
Message-ID: <20240714113827.21739.63969(a)lists.crash-utility.osci.io>
Content-Type: text/plain; charset="utf-8"
Sorry, the patch in previous mail. is mistake Please help review the below
patch which is test fine:
diff --git a/arm64.c b/arm64.c
index b3040d7..b992c01 100644
--- a/arm64.c
+++ b/arm64.c
@@ -2814,7 +2814,7 @@ arm64_unwind_frame(struct bt_info *bt, struct
arm64_stackframe
*frame)
low = frame->sp;
high = (low + stack_mask) & ~(stack_mask);
- if (fp < low || fp > high || fp & 0xf)
+ if (fp < low || fp > high || fp & 0xf || !INSTACK(fp, bt))
return FALSE;
I saw the similar code is in the arm64_unwind_frame_v2(), can you help to
check if the current issue can be reproduced with bt -o/-O(although the
-o/-O may be used in some old vmores)? Or we need to do the same change in
the arm64_unwind_frame_v2().
BTW: I can not reproduce the current issue, can you help share how to
reproduce this one(if possible)?
Thanks
Lianbo
frame->sp = fp + 0x10;
Thanks