From cac607bd8850e00356e4d97b05e7c8adfb3fa640 Mon Sep 17 00:00:00 2001 From: Jozsef Kadlecsik Date: Tue, 18 Jan 2011 17:17:46 +0100 Subject: Show correct line numbers in restore output for parser errors Parser errors are reported by a wrong lineno at restore, bug reported by Holger Eitzenberger: create foo6 hash:ip hashsize 64 family inet6 add foo6 20a1:1234:5678::/64 add foo6 20a1:1234:5679::/64 you get: ipset v5.2: Error in line 1: Syntax error: plain IP address must be supplied: 20a1:1234:5678::/64 Should be line 2 though. The solution is to set the session lineno before parsing. --- src/ipset.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/ipset.c') diff --git a/src/ipset.c b/src/ipset.c index 89dbe8f..d4cf7b8 100644 --- a/src/ipset.c +++ b/src/ipset.c @@ -439,6 +439,9 @@ parse_commandline(int argc, char *argv[]) "Cannot initialize ipset session, aborting."); } + /* Set session lineno to report parser errors correctly */ + ipset_session_lineno(session, restore_line); + /* Commandline parsing, somewhat similar to that of 'ip' */ /* First: parse core options */ -- cgit v1.2.3