misc: c2port: core: Make copying name from userspace more secure
authorLee Jones <lee.jones@linaro.org>
Mon, 2 Nov 2020 14:20:00 +0000 (14:20 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 3 Nov 2020 09:12:10 +0000 (10:12 +0100)
Currently the 'c2dev' device data is not initialised when it's
allocated.  There maybe an issue when using strncpy() to populate the
'name' attribute since a NUL terminator may not be provided in all
use-cases.  To prevent such a failing, let's ensure the 'c2dev'
device data area is fully zeroed out on allocation.

Cc: Rodolfo Giometti <giometti@enneenne.com>
Cc: "Eurotech S.p.A" <info@eurotech.it>
Cc: David Laight <David.Laight@aculab.com>
Reported-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/20201102142001.560490-1-lee.jones@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/c2port/core.c

index 80d87e8a0bea980aeafa111f98cf4968a6f4551d..fb9a1b49ff6de77a911d90c40f57a498fa49cd60 100644 (file)
@@ -899,7 +899,7 @@ struct c2port_device *c2port_device_register(char *name,
                unlikely(!ops->c2d_get) || unlikely(!ops->c2d_set))
                return ERR_PTR(-EINVAL);
 
-       c2dev = kmalloc(sizeof(struct c2port_device), GFP_KERNEL);
+       c2dev = kzalloc(sizeof(struct c2port_device), GFP_KERNEL);
        if (unlikely(!c2dev))
                return ERR_PTR(-ENOMEM);