From: Joshua Colp Date: Thu, 24 Oct 2019 10:21:31 +0000 (-0300) Subject: res_ari_events: Add module reference when a WebSocket is open. X-Git-Tag: 13.30.0-rc1~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=50feafe9b8775cbb754dfab101fabfb90b6d4c93;p=thirdparty%2Fasterisk.git 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 --- diff --git a/res/res_ari_events.c b/res/res_ari_events.c index 04c1c7946f..e30c6373e0 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 40e18556f7..6b6502e37b 100644 --- a/rest-api-templates/res_ari_resource.c.mustache +++ b/rest-api-templates/res_ari_resource.c.mustache @@ -198,6 +198,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) {