res_stasis.c: Protect channel datastore list from stasis end.

Change-Id: Ifadc469590bd4d5368e19d3763db3bd1f80fdb95
This commit is contained in:
Richard Mudgett
2016-03-30 13:31:44 -05:00
parent 23d2a561d5
commit 2fab4d7da8

View File

@@ -1188,10 +1188,11 @@ void stasis_app_channel_set_stasis_end_published(struct ast_channel *chan)
struct ast_datastore *datastore; struct ast_datastore *datastore;
datastore = ast_datastore_alloc(&set_end_published_info, NULL); datastore = ast_datastore_alloc(&set_end_published_info, NULL);
if (datastore) {
ast_channel_lock(chan); ast_channel_lock(chan);
ast_channel_datastore_add(chan, datastore); ast_channel_datastore_add(chan, datastore);
ast_channel_unlock(chan); ast_channel_unlock(chan);
}
} }
int stasis_app_channel_is_stasis_end_published(struct ast_channel *chan) int stasis_app_channel_is_stasis_end_published(struct ast_channel *chan)
@@ -1211,12 +1212,11 @@ static void remove_stasis_end_published(struct ast_channel *chan)
ast_channel_lock(chan); ast_channel_lock(chan);
datastore = ast_channel_datastore_find(chan, &set_end_published_info, NULL); datastore = ast_channel_datastore_find(chan, &set_end_published_info, NULL);
ast_channel_unlock(chan);
if (datastore) { if (datastore) {
ast_channel_datastore_remove(chan, datastore); ast_channel_datastore_remove(chan, datastore);
ast_datastore_free(datastore); ast_datastore_free(datastore);
} }
ast_channel_unlock(chan);
} }
/*! /brief Stasis dialplan application callback */ /*! /brief Stasis dialplan application callback */