From 4ad0e5a7d43d4be028a4237dceef06bd4403ea2d Mon Sep 17 00:00:00 2001 From: Tomasz Bursztyka Date: Thu, 27 Oct 2011 10:26:31 +0300 Subject: [PATCH] iptables: Move target options merge to prepare_target --- src/iptables.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/iptables.c b/src/iptables.c index eef91c1..14da18e 100644 --- a/src/iptables.c +++ b/src/iptables.c @@ -1299,6 +1299,20 @@ static struct xtables_target *prepare_target(struct connman_iptables *table, xt_t->init(xt_t->t); } + iptables_globals.opts = + xtables_merge_options( +#if XTABLES_VERSION_CODE > 5 + iptables_globals.orig_opts, +#endif + iptables_globals.opts, + xt_t->extra_opts, + &xt_t->option_offset); + + if (iptables_globals.opts == NULL) { + g_free(xt_t->t); + xt_t = NULL; + } + return xt_t; } @@ -1544,17 +1558,6 @@ static int iptables_command(int argc, char *argv[]) if (xt_t == NULL) goto out; - iptables_globals.opts = - xtables_merge_options( -#if XTABLES_VERSION_CODE > 5 - iptables_globals.orig_opts, -#endif - iptables_globals.opts, - xt_t->extra_opts, - &xt_t->option_offset); - if (iptables_globals.opts == NULL) - goto out; - if (delete == TRUE) { DBG("Deleting %s to %s (match %s)\n", target_name, chain, match_name); -- 2.7.4