Hi,

On 2024-04-24 17:55, Richard Ball wrote:
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.

I think it would make sense that there is at least one test case that takes 2 or more arguments to ensure that not only the first argument is extended. WDYT?


Kind regards,
Torbjörn

Reply via email to