[asterisk-dev] [Code Review] 4178: res_pjsip_outbound_publish: stack overflow when using non-default sorcery wizard

Kevin Harwell reviewboard at asterisk.org
Thu Nov 20 15:43:43 CST 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/4178/
-----------------------------------------------------------

(Updated Nov. 20, 2014, 3:43 p.m.)


Review request for Asterisk Developers.


Changes
-------

Updated based on feedback.  I ended up creating a "wrapper" object for the publish state so it could be tracked separately from the client state data so unpublishing is now done on publish state destruction which then in turn destroys the client state.

Also fixed a bug on module unload.  When unloading the module an unpublish message is sent for each currently active published item.  Upon sending pjsip calls a callback back into the module, but the module has been unloaded so a crash occurs (since it no longer existed).  Fixed it so the module waits until all unpublishing is done before completing the unload process.


Bugs: ASTERISK-24514
    https://issues.asterisk.org/jira/browse/ASTERISK-24514


Repository: Asterisk


Description
-------

When using a non-default sorcery wizard (in this instance realtime) for outbound publishes Asterisk will crash after a stack overflow occurs due to the code infinitely recursing.  The fix entails removing the outbound publish state dependency from the outbound publish sorcery object and instead keeping an in memory container that can be used to lookup the state when needed.


Diffs (updated)
-----

  branches/13/res/res_pjsip_outbound_publish.c 428498 

Diff: https://reviewboard.asterisk.org/r/4178/diff/


Testing
-------

On top of running the current testsuite tests I also manually tested various configurations and scenarios using a static configuration file as well as dynamic realtime.  Verified that the crash no longer occurs and the potentially affected functionality works as expected (for instance, module [re]loading).


Thanks,

Kevin Harwell

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20141120/70e4ba90/attachment.html>


More information about the asterisk-dev mailing list