Fix a race condition in res_pjsip_session with rapidly terminating the session.

The INVITE session state callback wrongly assumes that a session will always exist, but
when rapidly terminating the session this assumption goes out the window. As all handler
code for the INVITE session state callback requires the session it will now just exit
immediately if no session exists.

(closes issue ASTERISK-22668)
Reported by: John Bigelow


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@400872 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2013-10-13 15:41:37 +00:00
parent 07204b45c3
commit e94f240a88

View File

@@ -1814,6 +1814,10 @@ static void session_inv_on_state_changed(pjsip_inv_session *inv, pjsip_event *e)
print_debug_details(inv, NULL, e);
if (!session) {
return;
}
switch(e->type) {
case PJSIP_EVENT_TX_MSG:
handle_outgoing(session, e->body.tx_msg.tdata);