aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/patm
diff options
context:
space:
mode:
authorRuslan Ermilov <ru@FreeBSD.org>2005-09-16 12:49:06 +0000
committerRuslan Ermilov <ru@FreeBSD.org>2005-09-16 12:49:06 +0000
commitfead0681ed4fa30c5daddc6df7e166f75d6616a9 (patch)
tree37bb8214143d6412a18d105093193e832785d2d8 /sys/dev/patm
parentffdd61c31d5676e5018ee26c7813d504dbdfa8fb (diff)
downloadsrc-fead0681ed4fa30c5daddc6df7e166f75d6616a9.tar.gz
src-fead0681ed4fa30c5daddc6df7e166f75d6616a9.zip
Fix "struct ifnet" leak if attach() fails in the middle.
Notes
Notes: svn path=/head/; revision=150220
Diffstat (limited to 'sys/dev/patm')
-rw-r--r--sys/dev/patm/if_patm_attach.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/patm/if_patm_attach.c b/sys/dev/patm/if_patm_attach.c
index 884f16cc3ca9..0402d62ba250 100644
--- a/sys/dev/patm/if_patm_attach.c
+++ b/sys/dev/patm/if_patm_attach.c
@@ -477,7 +477,6 @@ patm_detach(device_t dev)
mtx_unlock(&sc->mtx);
atm_ifdetach(sc->ifp);
- if_free(sc->ifp);
patm_destroy(sc);
@@ -562,6 +561,9 @@ patm_destroy(struct patm_softc *sc)
cv_destroy(&sc->vcc_cv);
mtx_destroy(&sc->tst_lock);
mtx_destroy(&sc->mtx);
+
+ if (sc->ifp != NULL)
+ if_free(sc->ifp);
}
/*