mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 11:58:52 +00:00
Astobj2: Fix initialization order of refdebug and AO2_DEBUG.
This ensures that refdebug is initialized before AO2_DEBUG if both are enabled, since AO2_DEBUG allocates a container. This change also makes AO2_DEBUG initialization critical, a failure will abort Asterisk startup. This is needed since the failure would be caused by reg_containers allocation failure, and that would result in a segmentation fault by ao2_container_register later in startup. ASTERISK-25048 #close Reported by: Corey Farrell Change-Id: I9a243ea3fc5653b48b931ba6d61971cb2e530244
This commit is contained in:
@@ -4353,7 +4353,10 @@ int main(int argc, char *argv[])
|
||||
register_config_cli();
|
||||
read_config_maps();
|
||||
|
||||
astobj2_init();
|
||||
if (astobj2_init()) {
|
||||
printf("Failed: astobj2_init\n%s", term_quit());
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (ast_opt_console) {
|
||||
if (el_hist == NULL || el == NULL)
|
||||
|
@@ -899,13 +899,7 @@ int astobj2_init(void)
|
||||
{
|
||||
#ifdef REF_DEBUG
|
||||
char ref_filename[1024];
|
||||
#endif
|
||||
|
||||
if (container_init() != 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
#ifdef REF_DEBUG
|
||||
snprintf(ref_filename, sizeof(ref_filename), "%s/refs", ast_config_AST_LOG_DIR);
|
||||
ref_log = fopen(ref_filename, "w");
|
||||
if (!ref_log) {
|
||||
@@ -913,6 +907,11 @@ int astobj2_init(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (container_init() != 0) {
|
||||
fclose(ref_log);
|
||||
return -1;
|
||||
}
|
||||
|
||||
#if defined(AO2_DEBUG)
|
||||
ast_cli_register_multiple(cli_astobj2, ARRAY_LEN(cli_astobj2));
|
||||
#endif /* defined(AO2_DEBUG) */
|
||||
|
Reference in New Issue
Block a user