bonding: fix bond_inet6addr_event()
authorEric Dumazet <eric.dumazet@gmail.com>
Mon, 19 Jul 2010 03:24:14 +0000 (03:24 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 19 Jul 2010 16:34:31 +0000 (09:34 -0700)
After commit ad1afb0039391 (vlan_dev: VLAN 0 should be treated
as "no vlan tag" (802.1p packet)),
bond_inet6addr_event() might be called with a NULL bond->vlgrp pointer, and
a non empty bond->vlan_list. vlan_group_get_device() is dereferencing a NULL pointer.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_ipv6.c

index 969ffed86b9f4e217581f61aa67a5cda815c21f9..121b073a6c3fae1985c164071f0a8f285dba0c14 100644 (file)
@@ -178,6 +178,8 @@ static int bond_inet6addr_event(struct notifier_block *this,
                }
 
                list_for_each_entry(vlan, &bond->vlan_list, vlan_list) {
+                       if (!bond->vlgrp)
+                               continue;
                        vlan_dev = vlan_group_get_device(bond->vlgrp,
                                                         vlan->vlan_id);
                        if (vlan_dev == event_dev) {