Patchwork [iptables-nftables,-] xtables: Do not dump before command parsing has been finished

login
register
mail settings
Submitter Tomasz Bursztyka
Date July 31, 2013, 12:18 p.m.
Message ID <1375273132-10169-1-git-send-email-tomasz.bursztyka@linux.intel.com>
Download mbox | patch
Permalink /patch/263687/
State Accepted
Headers show

Comments

Tomasz Bursztyka - July 31, 2013, 12:18 p.m.
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>
---

I ensure the same behavior as usual, so -d outputs and exit succesfully as usual.

 iptables/xtables-save.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
Pablo Neira - July 31, 2013, 5:12 p.m.
On Wed, Jul 31, 2013 at 03:18:52PM +0300, Tomasz Bursztyka wrote:
> On xtables-save.c, -d will not output right away but after the full
> command line hase been parsed.

Applied, thanks Tomasz.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

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 @@  int
 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_save_main(int argc, char *argv[])
 			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 @@  xtables_save_main(int argc, char *argv[])
 		exit(1);
 	}
 
+	if (dump) {
+		do_output(&h, tablename, show_counters);
+		exit(0);
+	}
+
 	return !do_output(&h, tablename, show_counters);
 }