Page MenuHomeFreeBSD

D34646.diff
No OneTemporary

D34646.diff

diff --git a/sys/arm64/arm64/unwind.c b/sys/arm64/arm64/unwind.c
--- a/sys/arm64/arm64/unwind.c
+++ b/sys/arm64/arm64/unwind.c
@@ -41,7 +41,8 @@
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
--- a/sys/riscv/riscv/unwind.c
+++ b/sys/riscv/riscv/unwind.c
@@ -47,7 +47,8 @@
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;

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 16, 1:14 AM (21 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14650393
Default Alt Text
D34646.diff (741 B)

Event Timeline