-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/4384/
-----------------------------------------------------------
(Updated Jan. 30, 2015, 11:38 a.m.)
Status
------
This change has been marked as submitted.
Review request for Asterisk Developers.
Changes
-------
Committed in revision 431490
Bugs: ASTERISK-24635
https://issues.asterisk.org/jira/browse/ASTERISK-24635
Repository: Asterisk
Description
-------
When Asterisk attempts to send SIP outbound publish information and no response
is ever received (no 200 okay, 412, 423) the system eventually crashes. A
response is never received because the system Asterisk is attempting to send
publish information to is not available. The underlying pjsip framework
attempts to send publish information. After several attempts it calls back into
the Asterisk outbound publish code. At this point if the "client->queue" is
empty Asterisk attempts to schedule a refresh which utilizes "rdata" and since
no response was received the given "rdata" struture is NULL. Attempting to
dereference a NULL object of course results in a crash.
This patch re-queues the current message that has not received a response yet
(has no "rdata"), thus removing the possibility of the queue being empty and
having no "rdata" available. Consequently, in this scenario, the publish
refresh is not called and the crash is avoided.
Diffs
-----
branches/13/res/res_pjsip_outbound_publish.c 431402
Diff: https://reviewboard.asterisk.org/r/4384/diff/
Testing
-------
First duplicated the problem by attempting to publish to a non existent system
(after a bit Asterisk crashed). After applying the patch using the same setup
Asterisk no longer crashed. Also ran the current set of outbound publish
testsuite tests to make sure those still passed.
Thanks,
Kevin Harwell
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-dev