From b1bf2f23a7d733cf18eabf14d272c4112bdc5fc1 Mon Sep 17 00:00:00 2001 From: pdliyan Date: Tue, 4 Jul 2023 21:02:51 +0800 Subject: [PATCH] fix arm and aarch64 sp. --- bpf/aya-bpf/src/args.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bpf/aya-bpf/src/args.rs b/bpf/aya-bpf/src/args.rs index 48a4d53d..deb9aaa7 100644 --- a/bpf/aya-bpf/src/args.rs +++ b/bpf/aya-bpf/src/args.rs @@ -119,7 +119,7 @@ impl FromPtRegs for *const T { } fn from_stack_argument(ctx: &pt_regs, n: usize) -> Option { - let addr: __u64 = &ctx.sp + 8 * (n + 1) as __u64; + let addr: __u64 = &ctx.rsp + 8 * (n + 1) as __u64; unsafe { bpf_probe_read(addr as *const c_int).map(|v| v as *const _).ok() } } @@ -139,7 +139,7 @@ impl FromPtRegs for *const T { } fn from_stack_argument(ctx: &pt_regs, n: usize) -> Option { - let addr: __u64 = &ctx.sp + 8 * (n + 1) as __u64; + let addr: __u64 = &ctx.uregs[13] + 8 * (n + 1) as __u64; unsafe { bpf_probe_read(addr as *const c_int).map(|v| v as *const _).ok() } } @@ -183,7 +183,7 @@ impl FromPtRegs for *mut T { } fn from_stack_argument(ctx: &pt_regs, n: usize) -> Option { - let addr: __u64 = &ctx.sp + 8 * (n + 1) as __u64; + let addr: __u64 = &ctx.rsp + 8 * (n + 1) as __u64; unsafe { bpf_probe_read(addr as *const c_int).map(|v| v as *mut _).ok() } } @@ -203,7 +203,7 @@ impl FromPtRegs for *mut T { } fn from_stack_argument(ctx: &pt_regs, n: usize) -> Option { - let addr: __u64 = &ctx.sp + 8 * (n + 1) as __u64; + let addr: __u64 = &ctx.uregs[13] + 8 * (n + 1) as __u64; unsafe { bpf_probe_read(addr as *const c_int).map(|v| v as *mut _).ok() } }