]> git.hungrycats.org Git - linux/commitdiff
ethtool: Use kcalloc instead of kmalloc for ethtool_get_strings
authorJoe Perches <joe@perches.com>
Wed, 14 Oct 2015 08:09:40 +0000 (01:09 -0700)
committerJiri Slaby <jslaby@suse.cz>
Wed, 28 Oct 2015 15:38:16 +0000 (16:38 +0100)
[ Upstream commit 077cb37fcf6f00a45f375161200b5ee0cd4e937b ]

It seems that kernel memory can leak into userspace by a
kmalloc, ethtool_get_strings, then copy_to_user sequence.

Avoid this by using kcalloc to zero fill the copied buffer.

Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
net/core/ethtool.c

index 78e9d9223e40dfe5bc9956170619e0a8e3335e9d..944c60ce15d8e17735131d9c0aeb68c74bcd8c2f 100644 (file)
@@ -1077,7 +1077,7 @@ static int ethtool_get_strings(struct net_device *dev, void __user *useraddr)
 
        gstrings.len = ret;
 
-       data = kmalloc(gstrings.len * ETH_GSTRING_LEN, GFP_USER);
+       data = kcalloc(gstrings.len, ETH_GSTRING_LEN, GFP_USER);
        if (!data)
                return -ENOMEM;