mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-13 00:04:53 +00:00
res_pjsip: Fix startup/reload memory leak in config_auth.
An issue in config_auth.c:ast_sip_auth_digest_algorithms_vector_init() was causing double allocations for the two supported_algorithms vectors to the tune of 915 bytes. The leak only happens on startup and when a reload is done and doesn't get bigger with the number of auth objects defined. * Pre-initialized the two vectors in config_auth:auth_alloc(). * Removed the allocations in ast_sip_auth_digest_algorithms_vector_init(). * Added a note to the doc for ast_sip_auth_digest_algorithms_vector_init() noting that the vector passed in should be initialized and empty. * Simplified the create_artificial_auth() function in pjsip_distributor. * Set the vector initialization count to 0 in config_global:global_apply().
This commit is contained in:
@@ -219,7 +219,7 @@ static int global_apply(const struct ast_sorcery *sorcery, void *obj)
|
||||
return -1;
|
||||
}
|
||||
|
||||
AST_VECTOR_INIT(&algorithms, 4);
|
||||
AST_VECTOR_INIT(&algorithms, 0);
|
||||
res = ast_sip_auth_digest_algorithms_vector_init("global",
|
||||
&algorithms, "UAS", cfg->default_auth_algorithms_uas);
|
||||
AST_VECTOR_FREE(&algorithms);
|
||||
@@ -228,7 +228,7 @@ static int global_apply(const struct ast_sorcery *sorcery, void *obj)
|
||||
"Defaulting to %s\n", DEFAULT_AUTH_ALGORITHMS_UAS);
|
||||
ast_string_field_set(cfg, default_auth_algorithms_uas, DEFAULT_AUTH_ALGORITHMS_UAS);
|
||||
}
|
||||
AST_VECTOR_INIT(&algorithms, 4);
|
||||
AST_VECTOR_INIT(&algorithms, 0);
|
||||
res = ast_sip_auth_digest_algorithms_vector_init("global",
|
||||
&algorithms, "UAC", cfg->default_auth_algorithms_uac);
|
||||
AST_VECTOR_FREE(&algorithms);
|
||||
|
Reference in New Issue
Block a user