sip/dialplan_functions.c: Fix /channels/chan_sip/test_sip_rtpqos crash.
authorRichard Mudgett <rmudgett@digium.com>
Tue, 15 Mar 2016 19:51:25 +0000 (14:51 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 16 Mar 2016 19:22:19 +0000 (14:22 -0500)
commit0987a11cce90da40f5a6bec4646474c34dc55bc2
tree7f17983176e84f1803882af8974c7672cf31d108
parent9a7cfa2b61d90bc229d478b669833a6caf19b0c1
sip/dialplan_functions.c: Fix /channels/chan_sip/test_sip_rtpqos crash.

This patch is part of a series to resolve deadlocks in chan_sip.c.

Delaying destruction of the chan_sip sip_pvt structures caused the
/channels/chan_sip/test_sip_rtpqos unit test to crash.  That test
registers a special test ast_rtp_engine with the rtp engine module.  When
the unit test completes it cleans up by unregistering the test
ast_rtp_engine and exits.  Since the delayed destruction of the sip_pvt
happens after the unit test returns, the destructor tries to call the rtp
engine destroy callback of the test ast_rtp_engine auto variable which no
longer exists on the stack.

* Change the test ast_rtp_engine auto variable to a static variable.  Now
the variable can still exist after the unit test exits so the delayed
sip_pvt destruction can complete successfully.

ASTERISK-25023

Change-Id: I61e34a12d425189ef7e96fc69ae14993f82f3f13
channels/sip/dialplan_functions.c