summaryrefslogtreecommitdiffstats
path: root/sys/net/if_ppp.c
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2004-01-21 18:05:38 +0000
committerbrooks <brooks@FreeBSD.org>2004-01-21 18:05:38 +0000
commitef614cbb1266c3796ff2aa96d094f25e55fc7980 (patch)
treef01de892a070f732fe28d76239640653f2994c5f /sys/net/if_ppp.c
parentb9ee343f9e877944ad7d5775502246ac76002fe4 (diff)
downloadFreeBSD-src-ef614cbb1266c3796ff2aa96d094f25e55fc7980.zip
FreeBSD-src-ef614cbb1266c3796ff2aa96d094f25e55fc7980.tar.gz
Don't leak softc's when destroying interfaces.
Init the softc list when loaded. Noticed by: Maurycy Pawlowski-Wieronski <maurycy at fouk dot org>
Diffstat (limited to 'sys/net/if_ppp.c')
-rw-r--r--sys/net/if_ppp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/net/if_ppp.c b/sys/net/if_ppp.c
index c9a8f8f..e0d24c1 100644
--- a/sys/net/if_ppp.c
+++ b/sys/net/if_ppp.c
@@ -235,6 +235,8 @@ ppp_clone_destroy(struct ifnet *ifp)
mtx_destroy(&sc->sc_rawq.ifq_mtx);
mtx_destroy(&sc->sc_fastq.ifq_mtx);
mtx_destroy(&sc->sc_inq.ifq_mtx);
+
+ free(sc, M_PPP);
}
static int
@@ -242,6 +244,7 @@ ppp_modevent(module_t mod, int type, void *data)
{
switch (type) {
case MOD_LOAD:
+ LIST_INIT(&ppp_softc_list);
if_clone_attach(&ppp_cloner);
netisr_register(NETISR_PPP, (netisr_t *)pppintr, NULL, 0);
OpenPOWER on IntegriCloud