xtables: Do not dump before command parsing has been finished
On xtables-save.c, -d will not output right away but after the full
command line hase been parsed.
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
diff --git a/iptables/xtables-save.c b/iptables/xtables-save.c
index db03090..990c0fe 100644
--- a/iptables/xtables-save.c
+++ b/iptables/xtables-save.c
@@ -78,6 +78,7 @@
xtables_save_main(int argc, char *argv[])
{
const char *tablename = NULL;
+ bool dump = false;
struct nft_handle h = {
.family = AF_INET, /* default to AF_INET */
};
@@ -118,8 +119,8 @@
xtables_modprobe_program = optarg;
break;
case 'd':
- do_output(&h, tablename, show_counters);
- exit(0);
+ dump = true;
+ break;
case '4':
h.family = AF_INET;
break;
@@ -135,5 +136,10 @@
exit(1);
}
+ if (dump) {
+ do_output(&h, tablename, show_counters);
+ exit(0);
+ }
+
return !do_output(&h, tablename, show_counters);
}