summaryrefslogtreecommitdiffstats
path: root/libc/arch-arm/krait/bionic/__strcat_chk.S
diff options
context:
space:
mode:
Diffstat (limited to 'libc/arch-arm/krait/bionic/__strcat_chk.S')
-rw-r--r--libc/arch-arm/krait/bionic/__strcat_chk.S27
1 files changed, 17 insertions, 10 deletions
diff --git a/libc/arch-arm/krait/bionic/__strcat_chk.S b/libc/arch-arm/krait/bionic/__strcat_chk.S
index 4b125c8..ec99077 100644
--- a/libc/arch-arm/krait/bionic/__strcat_chk.S
+++ b/libc/arch-arm/krait/bionic/__strcat_chk.S
@@ -40,13 +40,13 @@
ENTRY(__strcat_chk)
.cfi_startproc
pld [r0, #0]
- .save {r0, lr}
push {r0, lr}
+ .save {r0, lr}
.cfi_def_cfa_offset 8
.cfi_rel_offset r0, 0
.cfi_rel_offset lr, 4
- .save {r4, r5}
push {r4, r5}
+ .save {r4, r5}
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
@@ -180,22 +180,29 @@ ENTRY(__strcat_chk)
.L_strlen_done:
add r2, r3, r4
cmp r2, lr
- bgt .L_fortify_check_failed
+ bgt __strcat_chk_failed
// Set up the registers for the memcpy code.
mov r1, r5
pld [r1, #64]
mov r2, r4
add r0, r0, r3
- .pad #-8
pop {r4, r5}
- .cfi_adjust_cfa_offset -8
- .cfi_restore r4
- .cfi_restore r5
- #include "memcpy_base.S"
+ .cfi_endproc
+END(__strcat_chk)
+
+#define MEMCPY_BASE __strcat_chk_memcpy_base
+#define MEMCPY_BASE_ALIGNED __strcat_chk_memcpy_base_aligned
+#include "memcpy_base.S"
-.L_fortify_check_failed:
+ENTRY(__strcat_chk_failed)
+ .cfi_startproc
+ .save {r0, lr}
+ .save {r4, r5}
+ .cfi_def_cfa_offset 8
+ .cfi_rel_offset r0, 0
+ .cfi_rel_offset lr, 4
.cfi_adjust_cfa_offset 8
.cfi_rel_offset r4, 0
.cfi_rel_offset r5, 4
@@ -211,7 +218,7 @@ error_message:
.word error_string-(1b+4)
.cfi_endproc
-END(__strcat_chk)
+END(__strcat_chk_failed)
.data
error_string: