Hi, qiwu
Thank you for the update.

On Mon, Jul 15, 2024 at 11:52 AM <devel-request@lists.crash-utility.osci.io> wrote:
Date: Sun, 14 Jul 2024 11:38:27 -0000
From: qiwu.chen@transsion.com
Subject: [Crash-utility] Re: [PATCH] arm64: fix a potential segfault
        in arm64_unwind_frame
To: devel@lists.crash-utility.osci.io
Message-ID: <20240714113827.21739.63969@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