diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-01-04 20:27:11 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2013-01-04 20:27:13 +0100 |
commit | d1e7922a587a239e16e0dbe654e63f76e1375e49 (patch) | |
tree | 274b7089d63569530743e70305f8c23885c672fe /libxtables/xtables.c | |
parent | 31da96d07b8abb35297201000f7f752019258cf6 (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/xtables.c')
-rw-r--r-- | libxtables/xtables.c | 22 |
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 |