From: Kees Cook Date: Thu, 7 Oct 2010 10:03:48 +0000 (+0000) Subject: net: clear heap allocation for ETHTOOL_GRXCLSRLALL X-Git-Tag: v2.6.36-rc8~17^2 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=ae6df5f96a51818d6376da5307d773baeece4014;p=~shefty%2Frdma-dev.git net: clear heap allocation for ETHTOOL_GRXCLSRLALL Calling ETHTOOL_GRXCLSRLALL with a large rule_cnt will allocate kernel heap without clearing it. For the one driver (niu) that implements it, it will leave the unused portion of heap unchanged and copy the full contents back to userspace. Signed-off-by: Kees Cook Acked-by: Ben Hutchings Signed-off-by: David S. Miller --- diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 7a85367b3c2..4016ac6bdd5 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c @@ -348,7 +348,7 @@ static noinline_for_stack int ethtool_get_rxnfc(struct net_device *dev, if (info.cmd == ETHTOOL_GRXCLSRLALL) { if (info.rule_cnt > 0) { if (info.rule_cnt <= KMALLOC_MAX_SIZE / sizeof(u32)) - rule_buf = kmalloc(info.rule_cnt * sizeof(u32), + rule_buf = kzalloc(info.rule_cnt * sizeof(u32), GFP_USER); if (!rule_buf) return -ENOMEM;