]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
net: phy: marvell: Use strlcpy() for ethtool::get_strings
authorFlorian Fainelli <f.fainelli@gmail.com>
Fri, 2 Mar 2018 23:08:37 +0000 (15:08 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 6 Mar 2018 16:12:39 +0000 (11:12 -0500)
Our statistics strings are allocated at initialization without being
bound to a specific size, yet, we would copy ETH_GSTRING_LEN bytes using
memcpy() which would create out of bounds accesses, this was flagged by
KASAN. Replace this with strlcpy() to make sure we are bound the source
buffer size and we also always NUL-terminate strings.

Fixes: d2fa47d9dd5c ("phy: marvell: Add ethtool statistics counters")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/marvell.c

index 22d9bc9c33a4bce864505babe6b3060348542a62..0e0978d8a0eb332bc488bcb1be0f916af784cfa1 100644 (file)
@@ -1452,8 +1452,8 @@ static void marvell_get_strings(struct phy_device *phydev, u8 *data)
        int i;
 
        for (i = 0; i < ARRAY_SIZE(marvell_hw_stats); i++) {
-               memcpy(data + i * ETH_GSTRING_LEN,
-                      marvell_hw_stats[i].string, ETH_GSTRING_LEN);
+               strlcpy(data + i * ETH_GSTRING_LEN,
+                       marvell_hw_stats[i].string, ETH_GSTRING_LEN);
        }
 }