bridge: bad error handling when adding invalid ether address
authorStephen Hemminger <shemminger@vyatta.com>
Thu, 26 Mar 2009 04:01:47 +0000 (21:01 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 2 May 2009 17:23:47 +0000 (10:23 -0700)
[ Upstream commit cda6d377ec6b2ee2e58d563d0bd7eb313e0165df ]

This fixes an crash when empty bond device is added to a bridge.
If an interface with invalid ethernet address (all zero) is added
to a bridge, then bridge code detects it when setting up the forward
databas entry. But the error unwind is broken, the bridge port object
can get freed twice: once when ref count went to zeo, and once by kfree.
Since object is never really accessible, just free it.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/bridge/br_if.c

index 63c18aa..2043c8e 100644 (file)
@@ -419,7 +419,6 @@ err2:
 err1:
        kobject_del(&p->kobj);
 err0:
-       kobject_put(&p->kobj);
        dev_set_promiscuity(dev, -1);
 put_back:
        dev_put(dev);