datastore: Add automatic module references.

Add a reference to the calling module when it is active to protect
access to datastore->info.  Remove module references done by
func_periodic_hook as the datastore now handles it.

ASTERISK-25128 #close

Change-Id: I8357a3711e77591d0d1dd8ab4211a7eedd782c89
This commit is contained in:
Corey Farrell
2017-12-29 15:50:12 -05:00
parent 80e6b2eff5
commit 0fe7df641a
3 changed files with 17 additions and 8 deletions

View File

@@ -137,8 +137,6 @@ static void hook_datastore_destroy_callback(void *data)
ast_free(state->context);
ast_free(state->exten);
ast_free(state);
ast_module_unref(ast_module_info->self);
}
static const struct ast_datastore_info hook_datastore = {
@@ -305,7 +303,7 @@ static int init_hook(struct ast_channel *chan, const char *context, const char *
if (!(datastore = ast_datastore_alloc(&hook_datastore, uid))) {
return -1;
}
ast_module_ref(ast_module_info->self);
if (!(state = hook_state_alloc(context, exten, interval, hook_id))) {
ast_datastore_free(datastore);
return -1;