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
This commit is contained in:
Joshua Colp 2019-10-24 07:21:31 -03:00
parent ea8d8e9a13
commit 6e22e1213e
2 changed files with 4 additions and 0 deletions

View File

@ -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");

View File

@ -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) {