https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114837

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-13 branch has been updated by Richard Ball
<ricba...@gcc.gnu.org>:

https://gcc.gnu.org/g:5550214b58e95320b54e42ef0e37c6479e04b27b

commit r13-8647-g5550214b58e95320b54e42ef0e37c6479e04b27b
Author: Richard Ball <richard.b...@arm.com>
Date:   Thu Apr 25 15:30:42 2024 +0100

    arm: Zero/Sign extends for CMSE security

    Co-Authored by: Andre Simoes Dias Vieira <andre.simoesdiasvie...@arm.com>

    This patch makes the following changes:

    1) When calling a secure function from non-secure code then any arguments
       smaller than 32-bits that are passed in registers are zero- or
sign-extended.
    2) After a non-secure function returns into secure code then any return
value
       smaller than 32-bits that is passed in a register is  zero- or
sign-extended.

    This patch addresses the following CVE-2024-0151.

    gcc/ChangeLog:
            PR target/114837
            * config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear):
            Add zero/sign extend.
            (arm_expand_prologue): Add zero/sign extend.

    gcc/testsuite/ChangeLog:

            * gcc.target/arm/cmse/extend-param.c: New test.
            * gcc.target/arm/cmse/extend-return.c: New test.

    (cherry picked from commit ad45086178d833254d66fab518b14234418f002b)

Reply via email to