---
tools/iptables-test.c | 22 +++++++++++++++++-----
1 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/tools/iptables-test.c b/tools/iptables-test.c
index 1fb5b14..4c3c7fd 100644
--- a/tools/iptables-test.c
+++ b/tools/iptables-test.c
@@ -1342,7 +1342,19 @@ static struct xtables_match *prepare_matches(struct
connman_iptables *table,
if (xt_m->init != NULL)
xt_m->init(xt_m->m);
- if (xt_m != xt_m->next) {
+ if (xt_m == xt_m->next)
+ goto done;
+
+ if (xt_m->x6_options != NULL)
+ connman_iptables_globals.opts =
+ xtables_options_xfrm(
+#if XTABLES_VERSION_CODE > 5
+ connman_iptables_globals.orig_opts,
+#endif
+ connman_iptables_globals.opts,
+ xt_m->x6_options,
+ &xt_m->option_offset);
+ else
connman_iptables_globals.opts =
xtables_merge_options(
#if XTABLES_VERSION_CODE > 5
@@ -1352,12 +1364,12 @@ static struct xtables_match *prepare_matches(struct
connman_iptables *table,
xt_m->extra_opts,
&xt_m->option_offset);
- if (connman_iptables_globals.opts == NULL) {
- g_free(xt_m->m);
- xt_m = NULL;
- }
+ if (connman_iptables_globals.opts == NULL) {
+ g_free(xt_m->m);
+ xt_m = NULL;
}
+done:
return xt_m;
}
--
1.7.7
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman