vt: keyboard: Allocate new_map with ARRAY_SIZE()
PATCH 1/1 vt: keyboard: Allocate new_map with ARRAY_SIZE()
From: Kees Cook <[email protected]>
In preparation for converting the kmalloc family of allocators to the type-aware kmalloc_obj family, we need to make sure that the returned type from the allocation matches the type of the variable being assigned. (The kmalloc family returns "void *", which can be implicitly cast to any pointer type.)
The new key map has as many entries as plain_map, but the size was taken from the whole array, which would make the allocation type a pointer to the array rather than the "unsigned short *" being assigned. Allocate ARRAY_SIZE-many entries instead. The resulting allocation size is the same.
Build tested ARCH=x86_64 allmodconfig with GCC 16.2.0:drivers/tty/vt/keyboard.o
---
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Jiri Slaby <[email protected]>
Cc: Nicolas Pitre <[email protected]>
Cc: <[email protected]>
--- drivers/tty/vt/keyboard.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/tty/vt/keyboard.c +3 -1
@@ -2002,7 +2002,9 @@ static int vt_kdskbent(unsigned char kbdmode, unsigned char idx,return 0 ;#endif - unsigned short __free(kfree) *new_map = kmalloc(sizeof(plain_map), GFP_KERNEL); + unsigned short __free(kfree) *new_map = +kmalloc_array (ARRAY_SIZE (plain_map),sizeof (*new_map), +GFP_KERNEL );if (!new_map)return -ENOMEM ;
Signature · 1 line
2.34.1
[email protected]
AI reviewSashiko has reviewed this patch and found no issues. It looks great!
Quoted 14 lines
From: Kees Cook <[email protected]>
In preparation for converting the kmalloc family of allocators to the type-aware
kmalloc_objfamily, we need to make sure that the returned type from the allocation matches the type of the variable being assigned. (The kmalloc family returns "void *", which can be implicitly cast to any pointer type.)The new key map has as many entries as
plain_map, but the size was taken from the whole array, which would make the allocation type a pointer to the array rather than the "unsigned short *" being assigned. Allocate ARRAY_SIZE-many entries instead. The resulting allocation size is the same.
Quoted 5 lines
Build tested ARCH=x86_64 allmodconfig with GCC 16.2.0:
drivers/tty/vt/keyboard.oAssisted-by LLM coccinelleSigned-off-by Kees Cook <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great!
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1