diff options
| author | Dapeng Gao <dapeng@dpgao.cn> | 2022-11-15 00:21:38 +0000 |
|---|---|---|
| committer | Brooks Davis <brooks@FreeBSD.org> | 2022-11-15 00:25:46 +0000 |
| commit | 40e0fa10f58d90744c2857b57adf0ddbce1a1e1c (patch) | |
| tree | cf4b81636279b81409927b0fbd5415b7d30faa73 /sys | |
| parent | c72f25972750e9de29257165140617b307e9b662 (diff) | |
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/arm64/arm64/unwind.c | 3 | ||||
| -rw-r--r-- | sys/riscv/riscv/unwind.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/arm64/arm64/unwind.c b/sys/arm64/arm64/unwind.c index 470b64c00540..81431e109494 100644 --- a/sys/arm64/arm64/unwind.c +++ b/sys/arm64/arm64/unwind.c @@ -41,7 +41,8 @@ unwind_frame(struct thread *td, struct unwind_state *frame) fp = frame->fp; - if (!kstack_contains(td, fp, sizeof(uintptr_t) * 2)) + if (!is_aligned(fp, sizeof(fp)) || + !kstack_contains(td, fp, sizeof(fp) * 2)) return (false); /* FP to previous frame (X29) */ diff --git a/sys/riscv/riscv/unwind.c b/sys/riscv/riscv/unwind.c index 9efb1fef9451..a66ffebcdc35 100644 --- a/sys/riscv/riscv/unwind.c +++ b/sys/riscv/riscv/unwind.c @@ -47,7 +47,8 @@ unwind_frame(struct thread *td, struct unwind_state *frame) fp = frame->fp; - if (!kstack_contains(td, fp - sizeof(fp) * 2, sizeof(fp) * 2)) + if (!is_aligned(fp, sizeof(fp)) || + !kstack_contains(td, fp - sizeof(fp) * 2, sizeof(fp) * 2)) return (false); frame->sp = fp; |
