mirror of
				https://git.proxmox.com/git/mirror_frr
				synced 2025-10-31 16:35:23 +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
	 Donatas Abraitis
						Donatas Abraitis