mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
util: iptables: use VIR_AUTOFREE instead of VIR_FREE for scalar types
By making use of GNU C's cleanup attribute handled by the VIR_AUTOFREE macro for declaring scalar variables, majority of the VIR_FREE calls can be dropped, which in turn leads to getting rid of most of our cleanup sections. Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@gmail.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
parent
a38abf267f
commit
280c81af6a
@ -215,7 +215,7 @@ static char *iptablesFormatNetwork(virSocketAddr *netaddr,
|
|||||||
unsigned int prefix)
|
unsigned int prefix)
|
||||||
{
|
{
|
||||||
virSocketAddr network;
|
virSocketAddr network;
|
||||||
char *netstr;
|
VIR_AUTOFREE(char *) netstr = NULL;
|
||||||
char *ret;
|
char *ret;
|
||||||
|
|
||||||
if (!(VIR_SOCKET_ADDR_IS_FAMILY(netaddr, AF_INET) ||
|
if (!(VIR_SOCKET_ADDR_IS_FAMILY(netaddr, AF_INET) ||
|
||||||
@ -238,7 +238,6 @@ static char *iptablesFormatNetwork(virSocketAddr *netaddr,
|
|||||||
|
|
||||||
ignore_value(virAsprintf(&ret, "%s/%d", netstr, prefix));
|
ignore_value(virAsprintf(&ret, "%s/%d", netstr, prefix));
|
||||||
|
|
||||||
VIR_FREE(netstr);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -254,7 +253,7 @@ iptablesForwardAllowOut(virFirewallPtr fw,
|
|||||||
const char *physdev,
|
const char *physdev,
|
||||||
int action)
|
int action)
|
||||||
{
|
{
|
||||||
char *networkstr;
|
VIR_AUTOFREE(char *) networkstr = NULL;
|
||||||
virFirewallLayer layer = VIR_SOCKET_ADDR_FAMILY(netaddr) == AF_INET ?
|
virFirewallLayer layer = VIR_SOCKET_ADDR_FAMILY(netaddr) == AF_INET ?
|
||||||
VIR_FIREWALL_LAYER_IPV4 : VIR_FIREWALL_LAYER_IPV6;
|
VIR_FIREWALL_LAYER_IPV4 : VIR_FIREWALL_LAYER_IPV6;
|
||||||
|
|
||||||
@ -279,7 +278,6 @@ iptablesForwardAllowOut(virFirewallPtr fw,
|
|||||||
"--jump", "ACCEPT",
|
"--jump", "ACCEPT",
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
VIR_FREE(networkstr);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -343,7 +341,7 @@ iptablesForwardAllowRelatedIn(virFirewallPtr fw,
|
|||||||
{
|
{
|
||||||
virFirewallLayer layer = VIR_SOCKET_ADDR_FAMILY(netaddr) == AF_INET ?
|
virFirewallLayer layer = VIR_SOCKET_ADDR_FAMILY(netaddr) == AF_INET ?
|
||||||
VIR_FIREWALL_LAYER_IPV4 : VIR_FIREWALL_LAYER_IPV6;
|
VIR_FIREWALL_LAYER_IPV4 : VIR_FIREWALL_LAYER_IPV6;
|
||||||
char *networkstr;
|
VIR_AUTOFREE(char *) networkstr = NULL;
|
||||||
|
|
||||||
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
|
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
|
||||||
return -1;
|
return -1;
|
||||||
@ -370,7 +368,6 @@ iptablesForwardAllowRelatedIn(virFirewallPtr fw,
|
|||||||
"--jump", "ACCEPT",
|
"--jump", "ACCEPT",
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
VIR_FREE(networkstr);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -432,7 +429,7 @@ iptablesForwardAllowIn(virFirewallPtr fw,
|
|||||||
{
|
{
|
||||||
virFirewallLayer layer = VIR_SOCKET_ADDR_FAMILY(netaddr) == AF_INET ?
|
virFirewallLayer layer = VIR_SOCKET_ADDR_FAMILY(netaddr) == AF_INET ?
|
||||||
VIR_FIREWALL_LAYER_IPV4 : VIR_FIREWALL_LAYER_IPV6;
|
VIR_FIREWALL_LAYER_IPV4 : VIR_FIREWALL_LAYER_IPV6;
|
||||||
char *networkstr;
|
VIR_AUTOFREE(char *) networkstr = NULL;
|
||||||
|
|
||||||
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
|
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
|
||||||
return -1;
|
return -1;
|
||||||
@ -454,7 +451,6 @@ iptablesForwardAllowIn(virFirewallPtr fw,
|
|||||||
"--out-interface", iface,
|
"--out-interface", iface,
|
||||||
"--jump", "ACCEPT",
|
"--jump", "ACCEPT",
|
||||||
NULL);
|
NULL);
|
||||||
VIR_FREE(networkstr);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -661,12 +657,11 @@ iptablesForwardMasquerade(virFirewallPtr fw,
|
|||||||
const char *protocol,
|
const char *protocol,
|
||||||
int action)
|
int action)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
VIR_AUTOFREE(char *) networkstr = NULL;
|
||||||
char *networkstr = NULL;
|
VIR_AUTOFREE(char *) addrStartStr = NULL;
|
||||||
char *addrStartStr = NULL;
|
VIR_AUTOFREE(char *) addrEndStr = NULL;
|
||||||
char *addrEndStr = NULL;
|
VIR_AUTOFREE(char *) portRangeStr = NULL;
|
||||||
char *portRangeStr = NULL;
|
VIR_AUTOFREE(char *) natRangeStr = NULL;
|
||||||
char *natRangeStr = NULL;
|
|
||||||
virFirewallRulePtr rule;
|
virFirewallRulePtr rule;
|
||||||
|
|
||||||
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
|
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
|
||||||
@ -677,15 +672,15 @@ iptablesForwardMasquerade(virFirewallPtr fw,
|
|||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Attempted to NAT '%s'. NAT is only supported for IPv4."),
|
_("Attempted to NAT '%s'. NAT is only supported for IPv4."),
|
||||||
networkstr);
|
networkstr);
|
||||||
goto cleanup;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (VIR_SOCKET_ADDR_IS_FAMILY(&addr->start, AF_INET)) {
|
if (VIR_SOCKET_ADDR_IS_FAMILY(&addr->start, AF_INET)) {
|
||||||
if (!(addrStartStr = virSocketAddrFormat(&addr->start)))
|
if (!(addrStartStr = virSocketAddrFormat(&addr->start)))
|
||||||
goto cleanup;
|
return -1;
|
||||||
if (VIR_SOCKET_ADDR_IS_FAMILY(&addr->end, AF_INET)) {
|
if (VIR_SOCKET_ADDR_IS_FAMILY(&addr->end, AF_INET)) {
|
||||||
if (!(addrEndStr = virSocketAddrFormat(&addr->end)))
|
if (!(addrEndStr = virSocketAddrFormat(&addr->end)))
|
||||||
goto cleanup;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -718,7 +713,7 @@ iptablesForwardMasquerade(virFirewallPtr fw,
|
|||||||
if (port->start < port->end && port->end < 65536) {
|
if (port->start < port->end && port->end < 65536) {
|
||||||
if (virAsprintf(&portRangeStr, ":%u-%u",
|
if (virAsprintf(&portRangeStr, ":%u-%u",
|
||||||
port->start, port->end) < 0)
|
port->start, port->end) < 0)
|
||||||
goto cleanup;
|
return -1;
|
||||||
} else {
|
} else {
|
||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Invalid port range '%u-%u'."),
|
_("Invalid port range '%u-%u'."),
|
||||||
@ -739,7 +734,7 @@ iptablesForwardMasquerade(virFirewallPtr fw,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
goto cleanup;
|
return -1;
|
||||||
|
|
||||||
virFirewallRuleAddArgList(fw, rule,
|
virFirewallRuleAddArgList(fw, rule,
|
||||||
"--jump", "SNAT",
|
"--jump", "SNAT",
|
||||||
@ -753,14 +748,7 @@ iptablesForwardMasquerade(virFirewallPtr fw,
|
|||||||
"--to-ports", &portRangeStr[1], NULL);
|
"--to-ports", &portRangeStr[1], NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = 0;
|
return 0;
|
||||||
cleanup:
|
|
||||||
VIR_FREE(networkstr);
|
|
||||||
VIR_FREE(addrStartStr);
|
|
||||||
VIR_FREE(addrEndStr);
|
|
||||||
VIR_FREE(portRangeStr);
|
|
||||||
VIR_FREE(natRangeStr);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -827,8 +815,7 @@ iptablesForwardDontMasquerade(virFirewallPtr fw,
|
|||||||
const char *destaddr,
|
const char *destaddr,
|
||||||
int action)
|
int action)
|
||||||
{
|
{
|
||||||
int ret = -1;
|
VIR_AUTOFREE(char *) networkstr = NULL;
|
||||||
char *networkstr = NULL;
|
|
||||||
|
|
||||||
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
|
if (!(networkstr = iptablesFormatNetwork(netaddr, prefix)))
|
||||||
return -1;
|
return -1;
|
||||||
@ -838,7 +825,7 @@ iptablesForwardDontMasquerade(virFirewallPtr fw,
|
|||||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Attempted to NAT '%s'. NAT is only supported for IPv4."),
|
_("Attempted to NAT '%s'. NAT is only supported for IPv4."),
|
||||||
networkstr);
|
networkstr);
|
||||||
goto cleanup;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (physdev && physdev[0])
|
if (physdev && physdev[0])
|
||||||
@ -859,10 +846,7 @@ iptablesForwardDontMasquerade(virFirewallPtr fw,
|
|||||||
"--jump", "RETURN",
|
"--jump", "RETURN",
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
ret = 0;
|
return 0;
|
||||||
cleanup:
|
|
||||||
VIR_FREE(networkstr);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user