mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 03:50:31 +00:00
res_config_sqlite: Check for CDR unregistration failures
If the CDR unregistration fails due to an inflight CDR, the res_config_sqlite module needs to bail on unloading itself. Otherwise, the config could be unloaded (including the CDR table name) while the CDR engine posts a CDR to the still registered backend, resulting in a crash. ........ Merged revisions 403435 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@403436 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1627,11 +1627,13 @@ static char *handle_cli_sqlite_show_tables(struct ast_cli_entry *e, int cmd, str
|
||||
|
||||
static int unload_module(void)
|
||||
{
|
||||
if (cli_status_registered)
|
||||
ast_cli_unregister_multiple(cli_status, ARRAY_LEN(cli_status));
|
||||
if (cdr_registered && ast_cdr_unregister(RES_CONFIG_SQLITE_NAME)) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (cdr_registered)
|
||||
ast_cdr_unregister(RES_CONFIG_SQLITE_NAME);
|
||||
if (cli_status_registered) {
|
||||
ast_cli_unregister_multiple(cli_status, ARRAY_LEN(cli_status));
|
||||
}
|
||||
|
||||
ast_config_engine_deregister(&sqlite_engine);
|
||||
|
||||
|
Reference in New Issue
Block a user