Commit 09f9adbc authored by Kees Cook's avatar Kees Cook Committed by Greg Kroah-Hartman
Browse files

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: default avatarKees Cook <kees@kernel.org>
Acked-by: default avatarAlexander Usyskin <alexander.usyskin@intel.com>
Link: https://lore.kernel.org/r/20250426061815.work.435-kees@kernel.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1281f0ae
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;