summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/libiptc/libip6tc.h3
-rw-r--r--ip6tables.c8
-rw-r--r--iptables.c8
3 files changed, 5 insertions, 14 deletions
diff --git a/include/libiptc/libip6tc.h b/include/libiptc/libip6tc.h
index 2904db57..7a247c46 100644
--- a/include/libiptc/libip6tc.h
+++ b/include/libiptc/libip6tc.h
@@ -26,6 +26,9 @@ int ip6tc_is_chain(const char *chain, const ip6tc_handle_t handle);
/* Take a snapshot of the rules. Returns NULL on error. */
ip6tc_handle_t ip6tc_init(const char *tablename);
+/* Cleanup after ip6tc_init(). */
+void ip6tc_free(ip6tc_handle_t *h);
+
/* Iterator functions to run through the chains. Returns NULL at end. */
const char *ip6tc_first_chain(ip6tc_handle_t *handle);
const char *ip6tc_next_chain(ip6tc_handle_t *handle);
diff --git a/ip6tables.c b/ip6tables.c
index d2508825..17bdb4e5 100644
--- a/ip6tables.c
+++ b/ip6tables.c
@@ -1670,7 +1670,6 @@ int do_command6(int argc, char *argv[], char **table, ip6tc_handle_t *handle)
const char *modprobe = NULL;
int proto_used = 0;
char icmp6p[] = "icmpv6";
- int no_handle = 0;
memset(&fw, 0, sizeof(fw));
@@ -2148,10 +2147,8 @@ int do_command6(int argc, char *argv[], char **table, ip6tc_handle_t *handle)
chain, IP6T_FUNCTION_MAXNAMELEN);
/* only allocate handle if we weren't called with a handle */
- if (!*handle) {
+ if (!*handle)
*handle = ip6tc_init(*table);
- no_handle = 1;
- }
if (!*handle) {
/* try to insmod the module if iptc_init failed */
@@ -2296,8 +2293,5 @@ int do_command6(int argc, char *argv[], char **table, ip6tc_handle_t *handle)
if (verbose > 1)
dump_entries6(*handle);
- if (no_handle)
- ip6tc_free(handle);
-
return ret;
}
diff --git a/iptables.c b/iptables.c
index b2de559c..67d30c91 100644
--- a/iptables.c
+++ b/iptables.c
@@ -1668,7 +1668,6 @@ int do_command(int argc, char *argv[], char **table, iptc_handle_t *handle)
char *protocol = NULL;
const char *modprobe = NULL;
int proto_used = 0;
- int no_handle = 0;
memset(&fw, 0, sizeof(fw));
@@ -2149,10 +2148,8 @@ int do_command(int argc, char *argv[], char **table, iptc_handle_t *handle)
chain, IPT_FUNCTION_MAXNAMELEN);
/* only allocate handle if we weren't called with a handle */
- if (!*handle) {
+ if (!*handle)
*handle = iptc_init(*table);
- no_handle = 1;
- }
if (!*handle) {
/* try to insmod the module if iptc_init failed */
@@ -2297,8 +2294,5 @@ int do_command(int argc, char *argv[], char **table, iptc_handle_t *handle)
if (verbose > 1)
dump_entries(*handle);
- if (no_handle)
- iptc_free(handle);
-
return ret;
}