selftests/powerpc: Fix out of bounds access in TM signal test
Gcc helpfully points out that we're accessing past the end of the gprs array: tm-signal-msr-resv.c: In function 'signal_usr1': tm-signal-msr-resv.c:43:37: error: array subscript is above array bounds [-Werror=array-bounds] ucp->uc_mcontext.regs->gpr[PT_MSR] |= (7ULL); We haven't noticed previously because -flto was hiding it somehow. The code is confused, PT_MSR isn't a gpr, instead it's in uc_regs->gregs, so fix it. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
5c3c7ede2b
commit
501e279c23
|
@ -40,7 +40,7 @@ void signal_usr1(int signum, siginfo_t *info, void *uc)
|
||||||
#ifdef __powerpc64__
|
#ifdef __powerpc64__
|
||||||
ucp->uc_mcontext.gp_regs[PT_MSR] |= (7ULL << 32);
|
ucp->uc_mcontext.gp_regs[PT_MSR] |= (7ULL << 32);
|
||||||
#else
|
#else
|
||||||
ucp->uc_mcontext.regs->gpr[PT_MSR] |= (7ULL);
|
ucp->uc_mcontext.uc_regs->gregs[PT_MSR] |= (7ULL);
|
||||||
#endif
|
#endif
|
||||||
/* Should segv on return becuase of invalid context */
|
/* Should segv on return becuase of invalid context */
|
||||||
segv_expected = 1;
|
segv_expected = 1;
|
||||||
|
|
Loading…
Reference in New Issue