diff options
author | brooks <brooks@FreeBSD.org> | 2004-01-21 18:05:38 +0000 |
---|---|---|
committer | brooks <brooks@FreeBSD.org> | 2004-01-21 18:05:38 +0000 |
commit | ef614cbb1266c3796ff2aa96d094f25e55fc7980 (patch) | |
tree | f01de892a070f732fe28d76239640653f2994c5f /sys | |
parent | b9ee343f9e877944ad7d5775502246ac76002fe4 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/net/if_ppp.c | 3 |
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); |