提交 8feae8e1 编写于 作者: D Daniel P. Berrange

Don't clobber return value in virInterfaceDefParseProtoIPv6

Several places in virInterfaceDefParseProtoIPv6 clobber the
default 'ret' return value. So when jumping to cleanup on
error, 'ret' may mistakenly be set to 0 instead of -1. This
caused failure to report OOM errors, meaning data was silently
lost during parsing.
Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
上级 31699915
......@@ -309,9 +309,8 @@ virInterfaceDefParseProtoIPv4(virInterfaceProtocolDefPtr def,
dhcp = virXPathNode("./dhcp", ctxt);
if (dhcp != NULL) {
ret = virInterfaceDefParseDhcp(def, dhcp, ctxt);
if (ret != 0)
return ret;
if (virInterfaceDefParseDhcp(def, dhcp, ctxt) < 0)
return -1;
}
nIpNodes = virXPathNodeSet("./ip", ctxt, &ipNodes);
......@@ -332,8 +331,7 @@ virInterfaceDefParseProtoIPv4(virInterfaceProtocolDefPtr def,
goto error;
ctxt->node = ipNodes[i];
ret = virInterfaceDefParseIp(ip, ctxt);
if (ret != 0) {
if (virInterfaceDefParseIp(ip, ctxt) < 0) {
virInterfaceIpDefFree(ip);
goto error;
}
......@@ -365,9 +363,8 @@ virInterfaceDefParseProtoIPv6(virInterfaceProtocolDefPtr def,
dhcp = virXPathNode("./dhcp", ctxt);
if (dhcp != NULL) {
ret = virInterfaceDefParseDhcp(def, dhcp, ctxt);
if (ret != 0)
return ret;
if (virInterfaceDefParseDhcp(def, dhcp, ctxt) < 0)
return -1;
}
nIpNodes = virXPathNodeSet("./ip", ctxt, &ipNodes);
......@@ -388,8 +385,7 @@ virInterfaceDefParseProtoIPv6(virInterfaceProtocolDefPtr def,
goto error;
ctxt->node = ipNodes[i];
ret = virInterfaceDefParseIp(ip, ctxt);
if (ret != 0) {
if (virInterfaceDefParseIp(ip, ctxt) < 0) {
virInterfaceIpDefFree(ip);
goto error;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册