Use array_size() helper instead of the open-coded version in memcpy().
These sorts of multiplication factors need to be wrapped in array_size().

This issue was found with the help of Coccinelle and, audited and fixed
manually.

Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83
Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
 drivers/usb/misc/sisusbvga/sisusb_con.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/misc/sisusbvga/sisusb_con.c 
b/drivers/usb/misc/sisusbvga/sisusb_con.c
index cd0155310fea..586d6b01c3c4 100644
--- a/drivers/usb/misc/sisusbvga/sisusb_con.c
+++ b/drivers/usb/misc/sisusbvga/sisusb_con.c
@@ -1226,7 +1226,7 @@ sisusbcon_font_set(struct vc_data *c, struct console_font 
*font,
                sisusb->font_backup = vmalloc(array_size(charcount, 32));
 
        if (sisusb->font_backup) {
-               memcpy(sisusb->font_backup, font->data, charcount * 32);
+               memcpy(sisusb->font_backup, font->data, array_size(charcount, 
32));
                sisusb->font_backup_size = charcount;
                sisusb->font_backup_height = font->height;
                sisusb->font_backup_512 = (charcount == 512) ? 1 : 0;
-- 
2.27.0

Reply via email to