From: Kees Cook Date: Sat, 26 Apr 2025 06:18:16 +0000 (-0700) Subject: mei: Cast the cb->ext_hdr allocation type X-Git-Tag: v6.16-rc1~30^2~48 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=09f9adbcea38477b37ba63743c7538d2bdcd95a2;p=linux-block.git mei: Cast the cb->ext_hdr allocation type In preparation for making the kmalloc family of allocators type aware, we need to make sure that the returned type from the allocation matches the type of the variable being assigned. (Before, the allocator would always return "void *", which can be implicitly cast to any pointer type.) The assigned type is "struct mei_ext_hdr *", but the returned type will be "struct mei_ext_hdr_gsc_f2h *", which is a larger allocation size. This is by design as struct mei_ext_hdr_gsc_f2h contains struct mei_ext_hdr as its first member. Cast the allocation to the match the assignment. Signed-off-by: Kees Cook Acked-by: Alexander Usyskin Link: https://lore.kernel.org/r/20250426061815.work.435-kees@kernel.org Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c index b09b79fedaba..c484f416fae4 100644 --- a/drivers/misc/mei/interrupt.c +++ b/drivers/misc/mei/interrupt.c @@ -133,7 +133,7 @@ static int mei_cl_irq_read_msg(struct mei_cl *cl, break; case MEI_EXT_HDR_GSC: gsc_f2h = (struct mei_ext_hdr_gsc_f2h *)ext; - cb->ext_hdr = kzalloc(sizeof(*gsc_f2h), GFP_KERNEL); + cb->ext_hdr = (struct mei_ext_hdr *)kzalloc(sizeof(*gsc_f2h), GFP_KERNEL); if (!cb->ext_hdr) { cb->status = -ENOMEM; goto discard;