unsigned int prefix)
{
virSocketAddr network;
- char *netstr;
+ VIR_AUTOFREE(char *) netstr = NULL;
char *ret;
if (!(VIR_SOCKET_ADDR_IS_FAMILY(netaddr, AF_INET) ||
ignore_value(virAsprintf(&ret, "%s/%d", netstr, prefix));
- VIR_FREE(netstr);
return ret;
}
const char *physdev,
int action)
{
- char *networkstr;
+ VIR_AUTOFREE(char *) networkstr = NULL;
virFirewallLayer layer = VIR_SOCKET_ADDR_FAMILY(netaddr) == AF_INET ?
VIR_FIREWALL_LAYER_IPV4 : VIR_FIREWALL_LAYER_IPV6;
"--jump", "ACCEPT",
NULL);
- VIR_FREE(networkstr);
return 0;
}
{
virFirewallLayer layer = VIR_SOCKET_ADDR_FAMILY(netaddr) == AF_INET ?
VIR_FIREWALL_LAYER_IPV4 : VIR_FIREWALL_LAYER_IPV6;
- char *networkstr;
+ VIR_AUTOFREE(char *) networkstr = NULL;
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
return -1;
"--jump", "ACCEPT",
NULL);
- VIR_FREE(networkstr);
return 0;
}
{
virFirewallLayer layer = VIR_SOCKET_ADDR_FAMILY(netaddr) == AF_INET ?
VIR_FIREWALL_LAYER_IPV4 : VIR_FIREWALL_LAYER_IPV6;
- char *networkstr;
+ VIR_AUTOFREE(char *) networkstr = NULL;
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
return -1;
"--out-interface", iface,
"--jump", "ACCEPT",
NULL);
- VIR_FREE(networkstr);
return 0;
}
const char *protocol,
int action)
{
- int ret = -1;
- char *networkstr = NULL;
- char *addrStartStr = NULL;
- char *addrEndStr = NULL;
- char *portRangeStr = NULL;
- char *natRangeStr = NULL;
+ VIR_AUTOFREE(char *) networkstr = NULL;
+ VIR_AUTOFREE(char *) addrStartStr = NULL;
+ VIR_AUTOFREE(char *) addrEndStr = NULL;
+ VIR_AUTOFREE(char *) portRangeStr = NULL;
+ VIR_AUTOFREE(char *) natRangeStr = NULL;
virFirewallRulePtr rule;
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Attempted to NAT '%s'. NAT is only supported for IPv4."),
networkstr);
- goto cleanup;
+ return -1;
}
if (VIR_SOCKET_ADDR_IS_FAMILY(&addr->start, AF_INET)) {
if (!(addrStartStr = virSocketAddrFormat(&addr->start)))
- goto cleanup;
+ return -1;
if (VIR_SOCKET_ADDR_IS_FAMILY(&addr->end, AF_INET)) {
if (!(addrEndStr = virSocketAddrFormat(&addr->end)))
- goto cleanup;
+ return -1;
}
}
if (port->start < port->end && port->end < 65536) {
if (virAsprintf(&portRangeStr, ":%u-%u",
port->start, port->end) < 0)
- goto cleanup;
+ return -1;
} else {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Invalid port range '%u-%u'."),
}
if (r < 0)
- goto cleanup;
+ return -1;
virFirewallRuleAddArgList(fw, rule,
"--jump", "SNAT",
"--to-ports", &portRangeStr[1], NULL);
}
- ret = 0;
- cleanup:
- VIR_FREE(networkstr);
- VIR_FREE(addrStartStr);
- VIR_FREE(addrEndStr);
- VIR_FREE(portRangeStr);
- VIR_FREE(natRangeStr);
- return ret;
+ return 0;
}
/**
const char *destaddr,
int action)
{
- int ret = -1;
- char *networkstr = NULL;
+ VIR_AUTOFREE(char *) networkstr = NULL;
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
return -1;
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Attempted to NAT '%s'. NAT is only supported for IPv4."),
networkstr);
- goto cleanup;
+ return -1;
}
if (physdev && physdev[0])
"--jump", "RETURN",
NULL);
- ret = 0;
- cleanup:
- VIR_FREE(networkstr);
- return ret;
+ return 0;
}
/**