Message ID | 4A2D16E4.3030702@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Mon, 08 Jun 2009 15:49:24 +0200 > [PATCH net-next-2.6] net: dev_addr_init() fix > > commit f001fde5eadd915f4858d22ed70d7040f48767cf > (net: introduce a list of device addresses dev_addr_list (v6)) > added one regression Vegard Nossum found in its testings. > > With kmemcheck help, Vegard found some uninitialized memory > was read and reported to user, potentialy leaking kernel data. > ( thread can be found on http://lkml.org/lkml/2009/5/30/177 ) > > dev_addr_init() incorrectly uses sizeof() operator. We were > initializing one byte instead of MAX_ADDR_LEN bytes. > > Reported-by: Vegard Nossum <vegard.nossum@gmail.com> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> > Acked-by: Jiri Pirko <jpirko@redhat.com> Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/core/dev.c b/net/core/dev.c index 1f38401..65387d9 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3655,8 +3655,8 @@ static int dev_addr_init(struct net_device *dev) /* rtnl_mutex must be held here */ INIT_LIST_HEAD(&dev->dev_addr_list); - memset(addr, 0, sizeof(*addr)); - err = __hw_addr_add(&dev->dev_addr_list, NULL, addr, sizeof(*addr), + memset(addr, 0, sizeof(addr)); + err = __hw_addr_add(&dev->dev_addr_list, NULL, addr, sizeof(addr), NETDEV_HW_ADDR_T_LAN); if (!err) { /*