mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 11:58:52 +00:00
Fix a missing unlock in case of error, and a missing free().
Always free the allocated memory for a string field, because we are always using it (not only when xmldocs are enabled). Also if there is an error allocating memory for the string field remember to unlock the list of registered applications, before returning. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@194945 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -5358,6 +5358,7 @@ int ast_register_application2(const char *app, int (*execute)(struct ast_channel
|
||||
}
|
||||
|
||||
if (ast_string_field_init(tmp, 128)) {
|
||||
AST_RWLIST_UNLOCK(&apps);
|
||||
ast_free(tmp);
|
||||
return -1;
|
||||
}
|
||||
@@ -6653,11 +6654,7 @@ int ast_unregister_application(const char *app)
|
||||
unreference_cached_app(tmp);
|
||||
AST_RWLIST_REMOVE_CURRENT(list);
|
||||
ast_verb(2, "Unregistered application '%s'\n", tmp->name);
|
||||
#ifdef AST_XML_DOCS
|
||||
if (tmp->docsrc == AST_XML_DOC) {
|
||||
ast_string_field_free_memory(tmp);
|
||||
}
|
||||
#endif
|
||||
ast_string_field_free_memory(tmp);
|
||||
ast_free(tmp);
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user