From 6525f374dbc2198070accbca1a4594d18cc71f9c Mon Sep 17 00:00:00 2001 From: Matthew Jordan <mjordan@digium.com> Date: Sun, 17 Aug 2014 23:29:34 +0000 Subject: [PATCH] apps/app_meetme: Fix crash when publishing MeetMe messages with no channel The same function, meetme_stasis_generate_msg, handles creating and publishing Stasis message both when there are channels in the MeetMe conference and when there are no channels in the conference. When the performance improvement was made to use cached snapshots, this created a situation where Asterisk would crash: obtaining a cached snapshot is not NULL tolerant. This patch restores the previous implementation, which used a NULL safe set of routines to produce a blob containing the channel snapshot (if available) and information about the MeetMe conference. ASTERISK-24234 #close Reported by: Shaun Ruffell Tested by: Shaun Ruffell ........ Merged revisions 421270 from http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged revisions 421273 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@421276 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_meetme.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/app_meetme.c b/apps/app_meetme.c index 824dab5477..bb87381fda 100644 --- a/apps/app_meetme.c +++ b/apps/app_meetme.c @@ -1380,7 +1380,13 @@ static void meetme_stasis_generate_msg(struct ast_conference *meetme_conference, } } - msg = ast_channel_blob_create_from_cache(ast_channel_uniqueid(chan), message_type, json_object); + if (chan) { + ast_channel_lock(chan); + } + msg = ast_channel_blob_create(chan, message_type, json_object); + if (chan) { + ast_channel_unlock(chan); + } if (!msg) { return; -- GitLab