diff options
-rw-r--r-- | tools/iptables-test.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/tools/iptables-test.c b/tools/iptables-test.c index a29a1a00..5ee1ec39 100644 --- a/tools/iptables-test.c +++ b/tools/iptables-test.c @@ -1289,6 +1289,20 @@ static struct xtables_target *prepare_target(struct connman_iptables *table, xt_t->init(xt_t->t); } + connman_iptables_globals.opts = + xtables_merge_options( +#if XTABLES_VERSION_CODE > 5 + connman_iptables_globals.orig_opts, +#endif + connman_iptables_globals.opts, + xt_t->extra_opts, + &xt_t->option_offset); + + if (connman_iptables_globals.opts == NULL) { + g_free(xt_t->t); + xt_t = NULL; + } + return xt_t; } @@ -1530,17 +1544,6 @@ int main(int argc, char *argv[]) if (xt_t == NULL) goto out; - connman_iptables_globals.opts = - xtables_merge_options( -#if XTABLES_VERSION_CODE > 5 - connman_iptables_globals.orig_opts, -#endif - connman_iptables_globals.opts, - xt_t->extra_opts, - &xt_t->option_offset); - if (connman_iptables_globals.opts == NULL) - goto out; - if (delete_rule == TRUE) { printf("Deleting %s to %s (match %s)\n", target_name, chain, match_name); |