[PATCH 4/5] net: add support for nvmem to eth_platform_get_mac_address()
From: andrew@lunn.ch (Andrew Lunn)
Date: 2018-07-18 16:42:45
Also in:
linux-omap, lkml, netdev
From: andrew@lunn.ch (Andrew Lunn)
Date: 2018-07-18 16:42:45
Also in:
linux-omap, lkml, netdev
+ if (!IS_ERR(nvmem)) {
+ addr = nvmem_cell_read(nvmem, &alen);
+ if (!IS_ERR(addr)) {
+ from = "nvmem";
+ /* Don't use ether_addr_copy() in case we
+ * didn't get the right size.
+ */Please verify the size. A short read can still give a valid MAC address, so the is_valid_ether_addr(addr) is not sufficient.
+ memcpy(addrbuf, addr, alen);
Another reason to check the length is that you appear to have a buffer overflow here, if alen > 6. Andrew
+ kfree(addr); + addr = addrbuf; + } + + nvmem_cell_put(nvmem); + } + } + if (!addr || !is_valid_ether_addr(addr)) return -ENODEV; -- 2.17.1