virNWFilterParseParamAttributes: Use automatic memory management

Signed-off-by: Tim Wiederhake <twiederh@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Tim Wiederhake 2021-07-14 10:49:23 +02:00
parent ec5838fc17
commit 84ac5beeac

View File

@ -698,18 +698,15 @@ virNWFilterParseVarValue(const char *val)
GHashTable * GHashTable *
virNWFilterParseParamAttributes(xmlNodePtr cur) virNWFilterParseParamAttributes(xmlNodePtr cur)
{ {
char *nam, *val; g_autoptr(GHashTable) table = virHashNew(virNWFilterVarValueHashFree);
virNWFilterVarValue *value;
GHashTable *table = virHashNew(virNWFilterVarValueHashFree);
cur = xmlFirstElementChild(cur); cur = xmlFirstElementChild(cur);
while (cur != NULL) { while (cur != NULL) {
if (virXMLNodeNameEqual(cur, "parameter")) { if (virXMLNodeNameEqual(cur, "parameter")) {
nam = virXMLPropString(cur, "name"); g_autofree char *nam = virXMLPropString(cur, "name");
val = virXMLPropString(cur, "value"); g_autofree char *val = virXMLPropString(cur, "value");
value = NULL; g_autoptr(virNWFilterVarValue) value = NULL;
if (nam != NULL && val != NULL) { if (nam != NULL && val != NULL) {
if (!isValidVarName(nam)) if (!isValidVarName(nam))
goto skip_entry; goto skip_entry;
@ -733,20 +730,13 @@ virNWFilterParseParamAttributes(xmlNodePtr cur)
value = NULL; value = NULL;
} }
skip_entry: skip_entry:
virNWFilterVarValueFree(value);
VIR_FREE(nam);
VIR_FREE(val);
} }
cur = xmlNextElementSibling(cur); cur = xmlNextElementSibling(cur);
} }
return table;
return g_steal_pointer(&table);
err_exit: err_exit:
VIR_FREE(nam);
VIR_FREE(val);
virNWFilterVarValueFree(value);
virHashFree(table);
return NULL; return NULL;
} }