summaryrefslogtreecommitdiffstats
path: root/drivers/net/bonding/bond_ipv6.c
diff options
context:
space:
mode:
authorEric Dumazet2010-07-19 05:24:14 +0200
committerDavid S. Miller2010-07-19 18:34:31 +0200
commitdb5dda905759c931ceb8f3f2fcfd7719009acc98 (patch)
treeb02a3f5e48ee9dfec6c04ea5fcacb69075ce2998 /drivers/net/bonding/bond_ipv6.c
parents2io: Remove unnecessary memset of netdev private data (diff)
downloadkernel-qcow2-linux-db5dda905759c931ceb8f3f2fcfd7719009acc98.tar.gz
kernel-qcow2-linux-db5dda905759c931ceb8f3f2fcfd7719009acc98.tar.xz
kernel-qcow2-linux-db5dda905759c931ceb8f3f2fcfd7719009acc98.zip
bonding: fix bond_inet6addr_event()
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>
Diffstat (limited to 'drivers/net/bonding/bond_ipv6.c')
-rw-r--r--drivers/net/bonding/bond_ipv6.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/bonding/bond_ipv6.c b/drivers/net/bonding/bond_ipv6.c
index 969ffed86b9f..121b073a6c3f 100644
--- a/drivers/net/bonding/bond_ipv6.c
+++ b/drivers/net/bonding/bond_ipv6.c
@@ -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) {