aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/powerpc
diff options
context:
space:
mode:
authorSachin Monga <smonga@linux.ibm.com>2024-12-09 16:47:40 -0500
committerPeter Bergner <bergner@linux.ibm.com>2024-12-09 16:49:54 -0500
commitbe13e467641cda4bd147ef3ef3afe9e4c6a35e1d (patch)
treefae84951f8050b152386818ed2c69c6040ceb6b3 /sysdeps/powerpc
parent9e08698e4caec73a83be1bf22074b58b59c2cb18 (diff)
downloadglibc-be13e467641cda4bd147ef3ef3afe9e4c6a35e1d.tar.xz
glibc-be13e467641cda4bd147ef3ef3afe9e4c6a35e1d.zip
powerpc64le: ROP changes for the *context and setjmp functions
Add ROP protection for the getcontext, setcontext, makecontext, swapcontext and __sigsetjmp_symbol functions. Reviewed-by: Peter Bergner <bergner@linux.ibm.com>
Diffstat (limited to 'sysdeps/powerpc')
-rw-r--r--sysdeps/powerpc/powerpc64/setjmp-common.S6
1 files changed, 6 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/setjmp-common.S b/sysdeps/powerpc/powerpc64/setjmp-common.S
index d677741a81..920621beb7 100644
--- a/sysdeps/powerpc/powerpc64/setjmp-common.S
+++ b/sysdeps/powerpc/powerpc64/setjmp-common.S
@@ -224,6 +224,9 @@ L(no_vmx):
#else
mflr r0
std r0,FRAME_LR_SAVE(r1)
+#ifdef __ROP_PROTECT__
+ hashst r0,FRAME_ROP_SAVE(r1)
+#endif
stdu r1,-FRAME_MIN_SIZE(r1)
cfi_adjust_cfa_offset(FRAME_MIN_SIZE)
cfi_offset(lr,FRAME_LR_SAVE)
@@ -232,6 +235,9 @@ L(no_vmx):
ld r0,FRAME_MIN_SIZE+FRAME_LR_SAVE(r1)
addi r1,r1,FRAME_MIN_SIZE
mtlr r0
+#ifdef __ROP_PROTECT__
+ hashchk r0,FRAME_ROP_SAVE(r1)
+#endif
blr
#endif
END (__sigsetjmp_symbol)