if (virNWFilterRuleDetailsParse(cur,
ret,
virAttr[i].att) < 0) {
- /* we ignore malformed rules
- goto err_exit;
- */
+ goto err_exit;
}
break;
}
if (VIR_ALLOC(entry) < 0)
goto cleanup;
- /* ignore malformed rule and include elements */
- if (xmlStrEqual(curr->name, BAD_CAST "rule"))
- entry->rule = virNWFilterRuleParse(curr);
- else if (xmlStrEqual(curr->name, BAD_CAST "filterref"))
- entry->include = virNWFilterIncludeParse(curr);
+ if (xmlStrEqual(curr->name, BAD_CAST "rule")) {
+ if (!(entry->rule = virNWFilterRuleParse(curr)))
+ goto cleanup;
+ } else if (xmlStrEqual(curr->name, BAD_CAST "filterref")) {
+ if (!(entry->include = virNWFilterIncludeParse(curr)))
+ goto cleanup;
+ }
if (entry->rule || entry->include) {
if (VIR_REALLOC_N(ret->filterEntries, ret->nentries+1) < 0) {
virResetLastError();
- if (!(dev = virNWFilterDefParseString(NULL, inXmlData)))
+ if (!(dev = virNWFilterDefParseString(NULL, inXmlData))) {
+ if (expect_error) {
+ virResetLastError();
+ goto done;
+ }
goto fail;
-
- if (!!virGetLastError() != expect_error)
- goto fail;
-
- if (expect_error) {
- /* need to suppress the errors */
- virResetLastError();
}
if (!(actual = virNWFilterDefFormat(dev)))
goto fail;
}
+ done:
ret = 0;
fail: