Skip to content

Commit

Permalink
Allow backtracing through ____longjmp_chk.
Browse files Browse the repository at this point in the history
  • Loading branch information
Andreas Schwab committed Jun 26, 2009
1 parent a879c2c commit bb87239
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 0 deletions.
7 changes: 7 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
2009-06-26 Andreas Schwab <aschwab@redhat.com>

* sysdeps/powerpc/powerpc32/____longjmp_chk.S (CHECK_SP): Save lr
before call.
* sysdeps/powerpc/powerpc64/____longjmp_chk.S (CHECK_SP):
Likewise.

2009-06-26 Ulrich Drepper <drepper@redhat.com>

* resolv/resolv.h: Define RES_SNGLKUPREOP.
Expand Down
8 changes: 8 additions & 0 deletions sysdeps/powerpc/powerpc32/____longjmp_chk.S
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,16 @@
#define CHECK_SP(reg) \
cmplw reg, r1; \
bge+ .Lok; \
cfi_remember_state; \
mflr r0; \
stwu r1,-16(r1); \
cfi_adjust_cfa_offset (16); \
stw r0,20(r1); \
cfi_offset (lr, 4); \
LOAD_ARG; \
bl HIDDEN_JUMPTARGET (__fortify_fail); \
nop; \
cfi_restore_state; \
.Lok:

#include <__longjmp-common.S>
8 changes: 8 additions & 0 deletions sysdeps/powerpc/powerpc64/____longjmp_chk.S
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,16 @@
#define CHECK_SP(reg) \
cmpld reg, r1; \
bge+ .Lok; \
cfi_remember_state; \
mflr r0; \
std r0,16(r1); \
stdu r1,-112(r1); \
cfi_adjust_cfa_offset (112); \
cfi_offset (lr, 16); \
ld r3,.LC1@toc(2); \
bl HIDDEN_JUMPTARGET (__fortify_fail); \
nop; \
cfi_restore_state; \
.Lok:

#include <__longjmp-common.S>

0 comments on commit bb87239

Please sign in to comment.