mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	cdr_pgsql: Fix crash when the module fails to load multiple times.
Missing or corrupt cdr_pgsql.conf configuration file can cause the
second attempt to load the PostgreSQL CDR module to crash Asterisk via
the Command Line Interface because a null CLI command is registered on
the first failed attempt to load the module.
Resolves: #736
(cherry picked from commit 4fea8a433b)
			
			
This commit is contained in:
		
				
					committed by
					
						 Asterisk Development Team
						Asterisk Development Team
					
				
			
			
				
	
			
			
			
						parent
						
							877d5ff577
						
					
				
				
					commit
					9f369fb5fd
				
			| @@ -783,12 +783,23 @@ static int config_module(int reload) | ||||
|  | ||||
| static int load_module(void) | ||||
| { | ||||
| 	ast_cli_register_multiple(cdr_pgsql_status_cli, sizeof(cdr_pgsql_status_cli) / sizeof(struct ast_cli_entry)); | ||||
| 	int res; | ||||
|  | ||||
| 	if (config_module(0)) { | ||||
| 		return AST_MODULE_LOAD_DECLINE; | ||||
| 		res = AST_MODULE_LOAD_DECLINE; | ||||
| 	} else if (ast_cdr_register(name, ast_module_info->description, pgsql_log)) { | ||||
| 		res = AST_MODULE_LOAD_DECLINE; | ||||
| 	} else if (ast_cli_register_multiple(cdr_pgsql_status_cli, ARRAY_LEN(cdr_pgsql_status_cli))) { | ||||
| 		res = AST_MODULE_LOAD_DECLINE; | ||||
| 	} else { | ||||
| 		res = AST_MODULE_LOAD_SUCCESS; | ||||
| 	} | ||||
| 	return ast_cdr_register(name, ast_module_info->description, pgsql_log) | ||||
| 		? AST_MODULE_LOAD_DECLINE : 0; | ||||
|  | ||||
| 	if (res != AST_MODULE_LOAD_SUCCESS) { | ||||
| 		unload_module(); | ||||
| 	} | ||||
|  | ||||
| 	return res; | ||||
| } | ||||
|  | ||||
| static int reload(void) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user