During deadlock avoidance the sip dialog pvt is locked and
unlocked. When this occurs we have no guarantee the pvt's owner
is still valid. We were trying to access the pvt's owner after
this without checking to see if it still existed first.
(closes issue #17271)
Reported by: under
Patches:
check_rtp_timeout.diff uploaded by under (license 914)
Tested by: dvossel
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@264331
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
usleep(1);
sip_pvt_lock(dialog);
}
+ if (!dialog->owner) {
+ return; /* channel hangup can occur during deadlock avoidance. */
+ }
ast_log(LOG_NOTICE, "Disconnecting call '%s' for lack of RTP activity in %ld seconds\n",
dialog->owner->name, (long) (t - dialog->lastrtprx));
/* Issue a softhangup */