Messages in this thread | | | Date | Wed, 2 Nov 2022 12:21:23 -0700 | From | Kees Cook <> | Subject | Re: [PATCH 1/4] counter: Adjust final parameter type in function and signal callbacks |
| |
On Wed, Nov 02, 2022 at 10:22:14AM -0700, Nathan Chancellor wrote: > The ->signal_u32_read(), ->count_u32_read(), and ->count_u32_write() > callbacks in 'struct counter_comp' expect the final parameter to have a > type of 'u32' or 'u32 *' but the ops functions that are being assigned > to those callbacks have an enumerated type as the final parameter. While > these are compatible from an ABI perspective, they will fail the > aforementioned CFI checks. > > Adjust the type of the final parameter in the ->signal_read(), > ->function_read(), and ->function_write() callbacks in 'struct > counter_ops' and their implementations to match the prototypes in > 'struct counter_comp' to clear up these warnings and CFI failures.
I don't understand these changes. Where do 'struct counter_comp' and 'struct counter_ops' get confused? I can only find matching ops/assignments/calls, so I must be missing something. This looks like a loss of CFI granularity instead of having wrappers added if there is an enum/u32 conversion needed somewhere.
-- Kees Cook
| |