From 360936ead5a421cf888ec08cd402f2ecddb5c6e7 Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
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) {
-- 
GitLab