Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ipv4: fib: Fix fib_info_hash_alloc() 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.)

This was allocating many sizeof(struct hlist_head *) when it actually
wanted sizeof(struct hlist_head). Luckily these are the same size.
Adjust the allocation type to match the assignment.

Signed-off-by: Kees Cook <kees@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: David Ahern <dsahern@kernel.org>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://patch.msgid.link/20250426060529.work.873-kees@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Kees Cook and committed by
Jakub Kicinski
fca6170f ff61a4a5

+1 -1
+1 -1
net/ipv4/fib_semantics.c
··· 365 365 static struct hlist_head *fib_info_hash_alloc(unsigned int hash_bits) 366 366 { 367 367 /* The second half is used for prefsrc */ 368 - return kvcalloc((1 << hash_bits) * 2, sizeof(struct hlist_head *), 368 + return kvcalloc((1 << hash_bits) * 2, sizeof(struct hlist_head), 369 369 GFP_KERNEL); 370 370 } 371 371