diff --git a/sys/netgraph/atm/ccatm/ng_ccatm.c b/sys/netgraph/atm/ccatm/ng_ccatm.c index f2e2b870aac6..70303698c860 100644 --- a/sys/netgraph/atm/ccatm/ng_ccatm.c +++ b/sys/netgraph/atm/ccatm/ng_ccatm.c @@ -879,6 +879,7 @@ ng_ccatm_disconnect(hook_p hook) node_p node = NG_HOOK_NODE(hook); struct ccnode *priv = NG_NODE_PRIVATE(node); struct cchook *hd = NG_HOOK_PRIVATE(hook); + struct ccdata *cc; if (hook == priv->dump) { priv->dump = NULL; @@ -893,12 +894,14 @@ ng_ccatm_disconnect(hook_p hook) else cc_user_destroy(hd->inst); + cc = hd->node->data; + free(hd, M_NG_CCATM); NG_HOOK_SET_PRIVATE(hook, NULL); priv->hook_cnt--; - cc_work(hd->node->data); + cc_work(cc); } /*