summaryrefslogtreecommitdiffstats
path: root/sys/dev/ed
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2005-09-16 11:25:19 +0000
committerru <ru@FreeBSD.org>2005-09-16 11:25:19 +0000
commitffd86537c18a9461b7ba5750e9c1614efab9e102 (patch)
tree28693ec03ccca1e33bd2724f25f53e25086d4948 /sys/dev/ed
parentc71407b5890e69c4a1adc0e0936f0d7e9cd24be4 (diff)
downloadFreeBSD-src-ffd86537c18a9461b7ba5750e9c1614efab9e102.zip
FreeBSD-src-ffd86537c18a9461b7ba5750e9c1614efab9e102.tar.gz
Fix "struct ifnet" leaks when attach() fails in the middle.
Diffstat (limited to 'sys/dev/ed')
-rw-r--r--sys/dev/ed/if_ed.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ed/if_ed.c b/sys/dev/ed/if_ed.c
index 41fc22e..1f60e132 100644
--- a/sys/dev/ed/if_ed.c
+++ b/sys/dev/ed/if_ed.c
@@ -252,6 +252,8 @@ ed_release_resources(device_t dev)
sc->irq_rid, sc->irq_res);
sc->irq_res = 0;
}
+ if (sc->ifp)
+ if_free(sc->ifp);
}
/*
@@ -374,7 +376,6 @@ ed_detach(device_t dev)
ED_UNLOCK(sc);
callout_drain(&sc->tick_ch);
ether_ifdetach(ifp);
- if_free(ifp);
bus_teardown_intr(dev, sc->irq_res, sc->irq_handle);
ed_release_resources(dev);
ED_LOCK_DESTROY(sc);
OpenPOWER on IntegriCloud