diff options
Diffstat (limited to 'pjsip/src/pjsip-ua/sip_reg.c')
-rw-r--r-- | pjsip/src/pjsip-ua/sip_reg.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/pjsip/src/pjsip-ua/sip_reg.c b/pjsip/src/pjsip-ua/sip_reg.c index bdb0460b..52a55632 100644 --- a/pjsip/src/pjsip-ua/sip_reg.c +++ b/pjsip/src/pjsip-ua/sip_reg.c @@ -176,6 +176,7 @@ PJ_DEF(pj_status_t) pjsip_regc_destroy(pjsip_regc *regc) regc->cb = NULL; pj_lock_release(regc->lock); } else { + pjsip_cached_auth *auth = NULL; pjsip_tpselector_dec_ref(®c->tp_sel); if (regc->last_transport) { pjsip_transport_dec_ref(regc->last_transport); @@ -189,6 +190,13 @@ PJ_DEF(pj_status_t) pjsip_regc_destroy(pjsip_regc *regc) pj_lock_release(regc->lock); pj_lock_destroy(regc->lock); regc->lock = NULL; + + auth = regc->auth_sess.cached_auth.next; + while (auth != ®c->auth_sess.cached_auth) { + pjsip_endpt_release_pool(regc->endpt, auth->pool); + auth = auth->next; + } + pjsip_endpt_release_pool(regc->endpt, regc->pool); } |