if (0 != __vc_config_mgr_check_engine_is_valid(g_config_info->engine_id)) {
SLOG(LOG_ERROR, vc_config_tag(), "[ERROR] Fail to get default engine");
+ vc_parser_unload_config(g_config_info);
pthread_mutex_unlock(&vc_config_mgr_mutex);
return VC_CONFIG_ERROR_ENGINE_NOT_FOUND;
}
char* tmp_language;
if (0 != __vc_config_mgr_select_lang(g_config_info->engine_id, &tmp_language)) {
SLOG(LOG_ERROR, vc_config_tag(), "[ERROR] Fail to select language");
+ vc_parser_unload_config(g_config_info);
pthread_mutex_unlock(&vc_config_mgr_mutex);
return -1;
}
if (0 != vc_parser_set_language(tmp_language)) {
free(tmp_language);
SLOG(LOG_ERROR, vc_config_tag(), "[ERROR] Fail to save config");
+ vc_parser_unload_config(g_config_info);
pthread_mutex_unlock(&vc_config_mgr_mutex);
return -1;
}
temp_client = (vc_config_client_s*)calloc(1, sizeof(vc_config_client_s));
if (NULL == temp_client) {
SLOG(LOG_ERROR, vc_config_tag(), "[ERROR] Fail to allocate memory");
+ vc_parser_unload_config(g_config_info);
pthread_mutex_unlock(&vc_config_mgr_mutex);
return VC_ERROR_OUT_OF_MEMORY;
}