| From 8866e77e34c013658b231ba3690250c4db05e38d Mon Sep 17 00:00:00 2001 |
| From: Stephen Hemminger <shemminger@vyatta.com> |
| Date: Wed, 25 Mar 2009 21:01:47 -0700 |
| Subject: bridge: bad error handling when adding invalid ether address |
| |
| From: Stephen Hemminger <shemminger@vyatta.com> |
| |
| [ 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 | 1 - |
| 1 file changed, 1 deletion(-) |
| |
| --- a/net/bridge/br_if.c |
| +++ b/net/bridge/br_if.c |
| @@ -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); |