From 5f3869608a5f99c850805d9ae60bd511589b3803 Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Sun, 1 Jul 2018 15:54:05 -0300 Subject: [PATCH] res_pjsip_pubsub: Hold module reference for publications. Incoming publications need to ensure that the module remains loaded for the lifetime of them. This is now done by holding a reference to the module while the publication exists. This mirrors that of inbound subscriptions. ASTERISK-27783 Change-Id: Ia98c95a15e11af25728d5fb3e56e12cda0cfc7c0 --- res/res_pjsip_pubsub.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/res/res_pjsip_pubsub.c b/res/res_pjsip_pubsub.c index 4526e02924..257922bccd 100644 --- a/res/res_pjsip_pubsub.c +++ b/res/res_pjsip_pubsub.c @@ -3161,6 +3161,8 @@ static void publication_destroy_fn(void *obj) ao2_cleanup(publication->datastores); ao2_cleanup(publication->endpoint); + + ast_module_unref(ast_module_info->self); } static struct ast_sip_publication *sip_create_publication(struct ast_sip_endpoint *endpoint, pjsip_rx_data *rdata, @@ -3177,6 +3179,8 @@ static struct ast_sip_publication *sip_create_publication(struct ast_sip_endpoin return NULL; } + ast_module_ref(ast_module_info->self); + if (!(publication->datastores = ao2_container_alloc(DATASTORE_BUCKETS, datastore_hash, datastore_cmp))) { ao2_ref(publication, -1); return NULL;