All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] vt: keyboard: Allocate new_map with ARRAY_SIZE()
@ 2026-09-17 21:15 Kees Cook
  2026-09-17 21:21 ` sashiko-bot
  0 siblings, 1 reply; 2+ messages in thread
From: Kees Cook @ 2026-09-17 21:15 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: Kees Cook, Kees Cook, Jiri Slaby, Nicolas Pitre, linux-serial,
	Alexey Gladkov, Joshua Rogers, linux-kernel, linux-hardening

From: Kees Cook <kees+treewide@kernel.org>

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

Assisted-by: LLM coccinelle
Signed-off-by: Kees Cook <kees+treewide@kernel.org>
---
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: Nicolas Pitre <npitre@baylibre.com>
Cc: <linux-serial@vger.kernel.org>
---
 drivers/tty/vt/keyboard.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
index c41d850b29c6..ef4a19aeb3ce 100644
--- a/drivers/tty/vt/keyboard.c
+++ b/drivers/tty/vt/keyboard.c
@@ -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;
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] vt: keyboard: Allocate new_map with ARRAY_SIZE()
  2026-09-17 21:15 [PATCH] vt: keyboard: Allocate new_map with ARRAY_SIZE() Kees Cook
@ 2026-09-17 21:21 ` sashiko-bot
  0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-09-17 21:21 UTC (permalink / raw)
  To: Kees Cook; +Cc: linux-serial

> From: Kees Cook <kees+treewide@kernel.org>
> 
> 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
> 
> Assisted-by: LLM coccinelle
> Signed-off-by: Kees Cook <kees+treewide@kernel.org>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260917211539.i.636-kees@kernel.org?part=1


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-09-17 21:21 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-17 21:15 [PATCH] vt: keyboard: Allocate new_map with ARRAY_SIZE() Kees Cook
2026-09-17 21:21 ` sashiko-bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.