/* * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include #include #include .globl update_stack_protector_canary /* ----------------------------------------------------------------------- * void update_stack_protector_canary(void) * * Change the value of the canary used for stack smashing attacks protection. * Note: This must be called when it is safe to call C code, but this cannot be * called by C code. Doing this will make the check fail when the calling * function returns. * ----------------------------------------------------------------------- */ func update_stack_protector_canary /* Use r4 as it is callee-saved */ mov r4, lr bl plat_get_stack_protector_canary /* Update the canary with the returned value */ ldr r1, =__stack_chk_guard str r0, [r1] bx r4 endfunc update_stack_protector_canary