summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Fainelli2018-03-03 00:08:36 +0100
committerDavid S. Miller2018-03-06 17:12:39 +0100
commitcd526676de1ece03a8ea7cea726cf879a2dba2b8 (patch)
treea972a9a092b698a6fe2da105d7f8925b8d76a5a7
parentMerge tag 'please-pull-ia64_misc' of git://git.kernel.org/pub/scm/linux/kerne... (diff)
downloadkernel-qcow2-linux-cd526676de1ece03a8ea7cea726cf879a2dba2b8.tar.gz
kernel-qcow2-linux-cd526676de1ece03a8ea7cea726cf879a2dba2b8.tar.xz
kernel-qcow2-linux-cd526676de1ece03a8ea7cea726cf879a2dba2b8.zip
net: dsa: b53: Use strlcpy() for ethtool::get_strings
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: 967dd82ffc52 ("net: dsa: b53: Add support for Broadcom RoboSwitch") Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/dsa/b53/b53_common.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c
index db830a1141d9..63e02a54d537 100644
--- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c
@@ -814,8 +814,8 @@ void b53_get_strings(struct dsa_switch *ds, int port, uint8_t *data)
unsigned int i;
for (i = 0; i < mib_size; i++)
- memcpy(data + i * ETH_GSTRING_LEN,
- mibs[i].name, ETH_GSTRING_LEN);
+ strlcpy(data + i * ETH_GSTRING_LEN,
+ mibs[i].name, ETH_GSTRING_LEN);
}
EXPORT_SYMBOL(b53_get_strings);