mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-29 13:51:53 +00:00
Merge pull request #12784 from FRRouting/mergify/bp/dev/8.5/pr-12781
lib: Release memory of YANG translation module on error (backport #12781)
This commit is contained in:
commit
badd2b2647
@ -127,10 +127,15 @@ static void yang_mapping_add(struct yang_translator *translator, int dir,
|
||||
}
|
||||
}
|
||||
|
||||
static void yang_tmodule_delete(struct yang_tmodule *tmodule)
|
||||
{
|
||||
XFREE(MTYPE_YANG_TRANSLATOR_MODULE, tmodule);
|
||||
}
|
||||
|
||||
struct yang_translator *yang_translator_load(const char *path)
|
||||
{
|
||||
struct yang_translator *translator;
|
||||
struct yang_tmodule *tmodule;
|
||||
struct yang_tmodule *tmodule = NULL;
|
||||
const char *family;
|
||||
struct lyd_node *dnode;
|
||||
struct ly_set *set;
|
||||
@ -160,6 +165,7 @@ struct yang_translator *yang_translator_load(const char *path)
|
||||
flog_warn(EC_LIB_YANG_TRANSLATOR_LOAD,
|
||||
"%s: module translator \"%s\" is loaded already",
|
||||
__func__, family);
|
||||
yang_dnode_free(dnode);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -282,15 +288,11 @@ struct yang_translator *yang_translator_load(const char *path)
|
||||
error:
|
||||
yang_dnode_free(dnode);
|
||||
yang_translator_unload(translator);
|
||||
yang_tmodule_delete(tmodule);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void yang_tmodule_delete(struct yang_tmodule *tmodule)
|
||||
{
|
||||
XFREE(MTYPE_YANG_TRANSLATOR_MODULE, tmodule);
|
||||
}
|
||||
|
||||
void yang_translator_unload(struct yang_translator *translator)
|
||||
{
|
||||
for (size_t i = 0; i < YANG_TRANSLATE_MAX; i++)
|
||||
|
Loading…
Reference in New Issue
Block a user