From: Peter Krempa Date: Tue, 11 Apr 2023 16:02:28 +0000 (+0200) Subject: conf: nwfilter: Refactor virNWFilterIncludeParse X-Git-Tag: v9.5.0-rc1~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a5f9a4041eb6eed04802b6f72e13cb2a5886bf1;p=thirdparty%2Flibvirt.git conf: nwfilter: Refactor virNWFilterIncludeParse Use automatic memory freeing and modern XML parsers to simplify the function. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index f96ae707f9..b79fd2561e 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -298,7 +298,7 @@ virNWFilterIncludeDefFree(virNWFilterIncludeDef *inc) g_free(inc->filterref); g_free(inc); } - +G_DEFINE_AUTOPTR_CLEANUP_FUNC(virNWFilterIncludeDef, virNWFilterIncludeDefFree); static void virNWFilterEntryFree(virNWFilterEntry *entry) @@ -2031,27 +2031,15 @@ virNWFilterRuleDetailsParse(xmlNodePtr node, static virNWFilterIncludeDef * virNWFilterIncludeParse(xmlNodePtr cur) { - virNWFilterIncludeDef *ret; - - ret = g_new0(virNWFilterIncludeDef, 1); - - ret->filterref = virXMLPropString(cur, "filter"); - if (!ret->filterref) { - virReportError(VIR_ERR_INTERNAL_ERROR, - "%s", - _("rule node requires action attribute")); - goto err_exit; - } + g_autoptr(virNWFilterIncludeDef) ret = g_new0(virNWFilterIncludeDef, 1); - ret->params = virNWFilterParseParamAttributes(cur); - if (!ret->params) - goto err_exit; + if (!(ret->filterref = virXMLPropStringRequired(cur, "filter"))) + return NULL; - return ret; + if (!(ret->params = virNWFilterParseParamAttributes(cur))) + return NULL; - err_exit: - virNWFilterIncludeDefFree(ret); - return NULL; + return g_steal_pointer(&ret); }