From: Phil Sutter Date: Mon, 27 Sep 2021 14:59:49 +0000 (+0200) Subject: xtables: Simplify addr_mask freeing X-Git-Tag: v1.8.8~112 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=38e1fe58fe814e4364155085327c0b1e2d9527ee;p=thirdparty%2Fiptables.git xtables: Simplify addr_mask freeing Introduce a generic 'ptr' union field to pass to free(). Signed-off-by: Phil Sutter --- diff --git a/iptables/nft-shared.h b/iptables/nft-shared.h index 71094a28..44ad0811 100644 --- a/iptables/nft-shared.h +++ b/iptables/nft-shared.h @@ -177,6 +177,7 @@ struct addr_mask { union { struct in_addr *v4; struct in6_addr *v6; + void *ptr; } addr; unsigned int naddrs; @@ -184,6 +185,7 @@ struct addr_mask { union { struct in_addr *v4; struct in6_addr *v6; + void *ptr; } mask; }; diff --git a/iptables/xtables.c b/iptables/xtables.c index 092edaaf..f45e3608 100644 --- a/iptables/xtables.c +++ b/iptables/xtables.c @@ -1021,17 +1021,10 @@ int do_commandx(struct nft_handle *h, int argc, char *argv[], char **table, nft_clear_iptables_command_state(&cs); - if (h->family == AF_INET) { - free(args.s.addr.v4); - free(args.s.mask.v4); - free(args.d.addr.v4); - free(args.d.mask.v4); - } else if (h->family == AF_INET6) { - free(args.s.addr.v6); - free(args.s.mask.v6); - free(args.d.addr.v6); - free(args.d.mask.v6); - } + free(args.s.addr.ptr); + free(args.s.mask.ptr); + free(args.d.addr.ptr); + free(args.d.mask.ptr); xtables_free_opts(1); return ret;