From 8b7500b4b8cf93c54ea4a1c70eaa6d04a86e51ea Mon Sep 17 00:00:00 2001 From: Riza Sulistyo Date: Tue, 5 Jan 2016 14:34:22 +0000 Subject: Re #1903: Fix crash when cleaning STUN response cache. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5233 74dad513-b988-da41-8d7b-12977e46ad98 --- pjnath/src/pjnath/stun_session.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pjnath/src/pjnath/stun_session.c b/pjnath/src/pjnath/stun_session.c index e7dfa582..d7eb2dbb 100644 --- a/pjnath/src/pjnath/stun_session.c +++ b/pjnath/src/pjnath/stun_session.c @@ -209,15 +209,25 @@ static void on_cache_timeout(pj_timer_heap_t *timer_heap, struct pj_timer_entry *entry) { pj_stun_tx_data *tdata; + pj_stun_session *sess; PJ_UNUSED_ARG(timer_heap); entry->id = PJ_FALSE; tdata = (pj_stun_tx_data*) entry->user_data; + sess = tdata->sess; + + pj_grp_lock_acquire(sess->grp_lock); + if (sess->is_destroying) { + pj_grp_lock_release(sess->grp_lock); + return; + } PJ_LOG(5,(SNAME(tdata->sess), "Response cache deleted")); pj_list_erase(tdata); + pj_grp_lock_release(sess->grp_lock); + destroy_tdata(tdata, PJ_FALSE); } -- cgit v1.2.3