summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsip-ua/sip_reg.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip/src/pjsip-ua/sip_reg.c')
-rw-r--r--pjsip/src/pjsip-ua/sip_reg.c8
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(&regc->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 != &regc->auth_sess.cached_auth) {
+ pjsip_endpt_release_pool(regc->endpt, auth->pool);
+ auth = auth->next;
+ }
+
pjsip_endpt_release_pool(regc->endpt, regc->pool);
}