diff options
Diffstat (limited to 'libc/arch-arm/krait/bionic/__strcat_chk.S')
-rw-r--r-- | libc/arch-arm/krait/bionic/__strcat_chk.S | 27 |
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: |