[asterisk-bugs] [JIRA] (ASTERISK-24970) Crash in res_pjsip_pubsub handling of failed notify
Asterisk Team (JIRA)
noreply at issues.asterisk.org
Wed Jul 27 10:24:13 CDT 2016
[ https://issues.asterisk.org/jira/browse/ASTERISK-24970?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Asterisk Team updated ASTERISK-24970:
-------------------------------------
Target Release Version/s: 14.0.0
> Crash in res_pjsip_pubsub handling of failed notify
> ---------------------------------------------------
>
> Key: ASTERISK-24970
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-24970
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Resources/res_pjsip_pubsub
> Affects Versions: 13.3.2
> Reporter: Scott Griepentrog
> Assignee: Scott Griepentrog
> Target Release: 13.4.0, 14.0.0
>
>
> During startup of Asterisk under the right conditions (various pjsip subscriptions in flight), a crash can occur where a deleted tree is referenced.
> Valgrind output (first invalid read):
> {noformat}
> ==21514== Thread 29:
> ==21514== Invalid read of size 8
> ==21514== at 0x136D8883: send_notify (res_pjsip_pubsub.c:2059)
> ==21514== by 0x136D9245: pubsub_on_rx_subscribe_request (res_pjsip_pubsub.c:2605)
> ==21514== by 0x136D993F: pubsub_on_rx_request (res_pjsip_pubsub.c:3090)
> ==21514== by 0x127F85A6: pjsip_endpt_process_rx_data (in /usr/lib/libpjsip.so.2)
> ==21514== by 0x16065238: distribute (pjsip_distributor.c:348)
> ==21514== by 0x5E9CF2: ast_taskprocessor_execute (taskprocessor.c:769)
> ==21514== by 0x5F4111: threadpool_execute (threadpool.c:351)
> ==21514== by 0x5F562F: worker_active (threadpool.c:1075)
> ==21514== by 0x5F53EC: worker_start (threadpool.c:995)
> ==21514== by 0x6015BD: dummy_start (utils.c:1237)
> ==21514== by 0x6725181: start_thread (pthread_create.c:312)
> ==21514== by 0x74A247C: clone (clone.S:111)
> ==21514== Address 0x931de08 is 120 bytes inside a block of size 176 free'd
> ==21514== at 0x4C2BDEC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==21514== by 0x45DA3D: internal_ao2_ref (astobj2.c:461)
> ==21514== by 0x45DCCC: __ao2_ref (astobj2.c:516)
> ==21514== by 0x45DD3C: __ao2_cleanup (astobj2.c:529)
> ==21514== by 0x136D365A: pubsub_on_evsub_state (res_pjsip_pubsub.c:3111)
> ==21514== by 0x123A7727: set_state (in /usr/lib/libpjsip-simple.so.2)
> ==21514== by 0x123A880F: pjsip_evsub_terminate (in /usr/lib/libpjsip-simple.so.2)
> ==21514== by 0x136D94ED: pubsub_on_rx_subscribe_request (res_pjsip_pubsub.c:2603)
> ==21514== by 0x136D993F: pubsub_on_rx_request (res_pjsip_pubsub.c:3090)
> ==21514== by 0x127F85A6: pjsip_endpt_process_rx_data (in /usr/lib/libpjsip.so.2)
> ==21514== by 0x16065238: distribute (pjsip_distributor.c:348)
> ==21514== by 0x5E9CF2: ast_taskprocessor_execute (taskprocessor.c:769)
> {noformat}
> The invalid read in send_notify() is of sub_tree->evsub where sub_tree is passed in from pubsub_on_rx_subscribe_request() and was recently created via create_subscription_tree(). However, prior to the invalid reference of subtree, it was free'd indirectly by the call to pjsip_evsub_terminate() in the case that generate_initial_notify() fails.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list