Re: [PATCH 1/2] cfi: add CONFIG_CFI_ICALL_NORMALIZE_INTEGERS

From: Miguel Ojeda
Date: Tue Jul 30 2024 - 07:39:43 EST


On Tue, Jul 30, 2024 at 11:40 AM Alice Ryhl <aliceryhl@xxxxxxxxxx> wrote:
>
> Introduce a Kconfig option for enabling the experimental option to
> normalize integer types. This ensures that integer types of the same
> size and signedness are considered compatible by the Control Flow
> Integrity sanitizer.
>
> This option exists for compatibility with Rust, as C and Rust do not
> have the same set of integer types. There are cases where C has two
> different integer types of the same size and alignment, but Rust only
> has one integer type of that size and alignment. When Rust calls into
> C functions using such types in their signature, this results in CFI
> failures.
>
> This patch introduces a dedicated option for this because it is
> undesirable to have CONFIG_RUST affect CC_FLAGS in this way.

Is there any case where we would want CFI_ICALL_NORMALIZE_INTEGERS
when Rust is not enabled, then? If not, is the idea here to make this
an explicit extra question in the config before enabling Rust? Or why
wouldn't it be done automatically?

Thanks!

Cheers,
Miguel