summaryrefslogtreecommitdiffstats
path: root/libxtables
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2013-01-04 20:27:11 +0100
committerPablo Neira Ayuso <pablo@netfilter.org>2013-01-04 20:27:13 +0100
commitd1e7922a587a239e16e0dbe654e63f76e1375e49 (patch)
tree274b7089d63569530743e70305f8c23885c672fe /libxtables
parent31da96d07b8abb35297201000f7f752019258cf6 (diff)
libxtables: add xtables_rule_matches_free
This function is shared by iptables and ip6tables. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'libxtables')
-rw-r--r--libxtables/xtables.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/libxtables/xtables.c b/libxtables/xtables.c
index 4c912860..da174e20 100644
--- a/libxtables/xtables.c
+++ b/libxtables/xtables.c
@@ -1075,6 +1075,28 @@ void xtables_register_targets(struct xtables_target *target, unsigned int n)
} while (n > 0);
}
+/* receives a list of xtables_rule_match, release them */
+void xtables_rule_matches_free(struct xtables_rule_match **matches)
+{
+ struct xtables_rule_match *matchp, *tmp;
+
+ for (matchp = *matches; matchp;) {
+ tmp = matchp->next;
+ if (matchp->match->m) {
+ free(matchp->match->m);
+ matchp->match->m = NULL;
+ }
+ if (matchp->match == matchp->match->next) {
+ free(matchp->match);
+ matchp->match = NULL;
+ }
+ free(matchp);
+ matchp = tmp;
+ }
+
+ *matches = NULL;
+}
+
/**
* xtables_param_act - act on condition
* @status: a constant from enum xtables_exittype