diff options
author | julian <julian@FreeBSD.org> | 2001-01-10 07:13:58 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 2001-01-10 07:13:58 +0000 |
commit | bb6dbcf3b2a0d48c5fc4d87972a640bdeccff1ea (patch) | |
tree | 72128a38e39aa7ad0bea118671db5ee332aff87e /sys/netgraph/ng_async.c | |
parent | cb4e03f2d838eb75831d178dcbf3f5d4564dbf95 (diff) | |
download | FreeBSD-src-bb6dbcf3b2a0d48c5fc4d87972a640bdeccff1ea.zip FreeBSD-src-bb6dbcf3b2a0d48c5fc4d87972a640bdeccff1ea.tar.gz |
Fix some memory leaks
Add memory leak detection assitance.
Diffstat (limited to 'sys/netgraph/ng_async.c')
-rw-r--r-- | sys/netgraph/ng_async.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/sys/netgraph/ng_async.c b/sys/netgraph/ng_async.c index 426ddd8..9208447 100644 --- a/sys/netgraph/ng_async.c +++ b/sys/netgraph/ng_async.c @@ -59,6 +59,13 @@ #include <net/ppp_defs.h> +#ifdef NG_SEPARATE_MALLOC +MALLOC_DEFINE(M_NETGRAPH_ASYNC, "netgraph_async", "netgraph async node "); +#else +#define M_NETGRAPH_ASYNC M_NETGRAPH +#endif + + /* Async decode state */ #define MODE_HUNT 0 #define MODE_NORMAL 1 @@ -178,7 +185,7 @@ nga_constructor(node_p node) { sc_p sc; - MALLOC(sc, sc_p, sizeof(*sc), M_NETGRAPH, M_NOWAIT | M_ZERO); + MALLOC(sc, sc_p, sizeof(*sc), M_NETGRAPH_ASYNC, M_NOWAIT | M_ZERO); if (sc == NULL) return (ENOMEM); sc->amode = MODE_HUNT; @@ -186,15 +193,15 @@ nga_constructor(node_p node) sc->cfg.amru = NG_ASYNC_DEFAULT_MRU; sc->cfg.smru = NG_ASYNC_DEFAULT_MRU; MALLOC(sc->abuf, u_char *, - ASYNC_BUF_SIZE(sc->cfg.smru), M_NETGRAPH, M_NOWAIT); + ASYNC_BUF_SIZE(sc->cfg.smru), M_NETGRAPH_ASYNC, M_NOWAIT); if (sc->abuf == NULL) goto fail; MALLOC(sc->sbuf, u_char *, - SYNC_BUF_SIZE(sc->cfg.amru), M_NETGRAPH, M_NOWAIT); + SYNC_BUF_SIZE(sc->cfg.amru), M_NETGRAPH_ASYNC, M_NOWAIT); if (sc->sbuf == NULL) { - FREE(sc->abuf, M_NETGRAPH); + FREE(sc->abuf, M_NETGRAPH_ASYNC); fail: - FREE(sc, M_NETGRAPH); + FREE(sc, M_NETGRAPH_ASYNC); return (ENOMEM); } NG_NODE_SET_PRIVATE(node, sc); @@ -294,18 +301,18 @@ nga_rcvmsg(node_p node, item_p item, hook_p lasthook) cfg->enabled = !!cfg->enabled; /* normalize */ if (cfg->smru > sc->cfg.smru) { /* reallocate buffer */ MALLOC(buf, u_char *, ASYNC_BUF_SIZE(cfg->smru), - M_NETGRAPH, M_NOWAIT); + M_NETGRAPH_ASYNC, M_NOWAIT); if (!buf) ERROUT(ENOMEM); - FREE(sc->abuf, M_NETGRAPH); + FREE(sc->abuf, M_NETGRAPH_ASYNC); sc->abuf = buf; } if (cfg->amru > sc->cfg.amru) { /* reallocate buffer */ MALLOC(buf, u_char *, SYNC_BUF_SIZE(cfg->amru), - M_NETGRAPH, M_NOWAIT); + M_NETGRAPH_ASYNC, M_NOWAIT); if (!buf) ERROUT(ENOMEM); - FREE(sc->sbuf, M_NETGRAPH); + FREE(sc->sbuf, M_NETGRAPH_ASYNC); sc->sbuf = buf; sc->amode = MODE_HUNT; sc->slen = 0; @@ -344,10 +351,10 @@ nga_shutdown(node_p node) { const sc_p sc = NG_NODE_PRIVATE(node); - FREE(sc->abuf, M_NETGRAPH); - FREE(sc->sbuf, M_NETGRAPH); + FREE(sc->abuf, M_NETGRAPH_ASYNC); + FREE(sc->sbuf, M_NETGRAPH_ASYNC); bzero(sc, sizeof(*sc)); - FREE(sc, M_NETGRAPH); + FREE(sc, M_NETGRAPH_ASYNC); NG_NODE_SET_PRIVATE(node, NULL); NG_NODE_UNREF(node); return (0); |