From 6e22e1213eb0ed1baff0734dcfcc8f23e355da16 Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Thu, 24 Oct 2019 07:21:31 -0300 Subject: [PATCH] res_ari_events: Add module reference when a WebSocket is open. This change ensures that the module isn't unloaded when a WebSocket is open. Previously it was possible to unload the module manually or during shutdown which could cause a crash when any active WebSockets were terminated. ASTERISK-28585 Change-Id: I85c71ab112f99875b586419a34c08c8b34c14c5c --- res/res_ari_events.c | 2 ++ rest-api-templates/res_ari_resource.c.mustache | 2 ++ 2 files changed, 4 insertions(+) diff --git a/res/res_ari_events.c b/res/res_ari_events.c index c8f28f97b1..1c4655f827 100644 --- a/res/res_ari_events.c +++ b/res/res_ari_events.c @@ -150,6 +150,8 @@ static void ast_ari_events_event_websocket_ws_established_cb(struct ast_websocke RAII_VAR(struct ast_websocket *, s, ws_session, ast_websocket_unref); RAII_VAR(struct ast_ari_websocket_session *, session, NULL, ao2_cleanup); + SCOPED_MODULE_USE(ast_module_info->self); + response = ast_calloc(1, sizeof(*response)); if (!response) { ast_log(LOG_ERROR, "Failed to create response.\n"); diff --git a/rest-api-templates/res_ari_resource.c.mustache b/rest-api-templates/res_ari_resource.c.mustache index 85948fba16..e320f19fc3 100644 --- a/rest-api-templates/res_ari_resource.c.mustache +++ b/rest-api-templates/res_ari_resource.c.mustache @@ -211,6 +211,8 @@ static void ast_ari_{{c_name}}_{{c_nickname}}_ws_established_cb(struct ast_webso struct ast_variable *path_vars = NULL; {{/has_path_parameters}} + SCOPED_MODULE_USE(ast_module_info->self); + {{#has_parameters}} response = ast_calloc(1, sizeof(*response)); if (!response) {