aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorRichard Ball <richard.ball@arm.com>2024-04-25 15:30:42 +0100
committerRichard Ball <richard.ball@arm.com>2024-04-25 15:33:43 +0100
commitad45086178d833254d66fab518b14234418f002b (patch)
tree8eba129b5b6070d5afb06e61617e2ca447d3e8bd /libgcc
parent070dd5c883ec2c0be542f448bd82d0f7f0ead390 (diff)
downloadgcc-ad45086178d833254d66fab518b14234418f002b.zip
gcc-ad45086178d833254d66fab518b14234418f002b.tar.gz
gcc-ad45086178d833254d66fab518b14234418f002b.tar.bz2
arm: Zero/Sign extends for CMSE security
Co-Authored by: Andre Simoes Dias Vieira <Andre.SimoesDiasVieira@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.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions