net: usb: ax88179_178a: initialize local variables before use
authorPhillip Potter <phil@philpotter.co.uk>
Thu, 1 Apr 2021 22:36:07 +0000 (23:36 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 1 Apr 2021 23:09:37 +0000 (16:09 -0700)
Use memset to initialize local array in drivers/net/usb/ax88179_178a.c, and
also set a local u16 and u32 variable to 0. Fixes a KMSAN found uninit-value bug
reported by syzbot at:
https://syzkaller.appspot.com/bug?id=00371c73c72f72487c1d0bfe0cc9d00de339d5aa

Reported-by: syzbot+4993e4a0e237f1b53747@syzkaller.appspotmail.com
Signed-off-by: Phillip Potter <phil@philpotter.co.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/ax88179_178a.c

index d650b39..c131671 100644 (file)
@@ -296,12 +296,12 @@ static int ax88179_read_cmd(struct usbnet *dev, u8 cmd, u16 value, u16 index,
        int ret;
 
        if (2 == size) {
-               u16 buf;
+               u16 buf = 0;
                ret = __ax88179_read_cmd(dev, cmd, value, index, size, &buf, 0);
                le16_to_cpus(&buf);
                *((u16 *)data) = buf;
        } else if (4 == size) {
-               u32 buf;
+               u32 buf = 0;
                ret = __ax88179_read_cmd(dev, cmd, value, index, size, &buf, 0);
                le32_to_cpus(&buf);
                *((u32 *)data) = buf;
@@ -1296,6 +1296,8 @@ static void ax88179_get_mac_addr(struct usbnet *dev)
 {
        u8 mac[ETH_ALEN];
 
+       memset(mac, 0, sizeof(mac));
+
        /* Maybe the boot loader passed the MAC address via device tree */
        if (!eth_platform_get_mac_address(&dev->udev->dev, mac)) {
                netif_dbg(dev, ifup, dev->net,