diff --git a/sys/arm/arm/unwind.c b/sys/arm/arm/unwind.c --- a/sys/arm/arm/unwind.c +++ b/sys/arm/arm/unwind.c @@ -399,6 +399,8 @@ return 1; /* Update SP */ + if (!__is_aligned(vsp, sizeof(register_t))) + return 1; update_vsp = 1; /* Load the registers */ @@ -431,6 +433,8 @@ count = insn & INSN_POP_COUNT_MASK; /* Update sp */ + if (!__is_aligned(vsp, sizeof(register_t))) + return 1; update_vsp = 1; /* Pop the registers */ @@ -461,6 +465,8 @@ return 1; /* Update SP */ + if (!__is_aligned(vsp, sizeof(register_t))) + return 1; update_vsp = 1; /* Load the registers */