From 0ec8c0f00b591681076af2db34df0f230b08fa2c Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Wed, 19 Nov 2008 19:01:26 +0100 Subject: state: report spaces in the state list parsing This patch adds better error reporting when the user inserts a space between two states with the --state option. iptables -I INPUT -m state ESTABLISHED, RELATED ^ mind the space results in: iptables v1.4.2-rc1: Bad state `' Try `iptables -h' or 'iptables --help' for more information. Now this returns: iptables v1.4.2-rc1: `--state' requires a list of states with no spaces, e.g. ESTABLISHED,RELATED This patch also applies to libxt_conntrack which has a copy of the function. Signed-off-by: Pablo Neira Ayuso --- extensions/libxt_conntrack.c | 5 ++++- extensions/libxt_state.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'extensions') diff --git a/extensions/libxt_conntrack.c b/extensions/libxt_conntrack.c index 3cec9dd4..c7f80e0d 100644 --- a/extensions/libxt_conntrack.c +++ b/extensions/libxt_conntrack.c @@ -107,7 +107,10 @@ parse_states(const char *arg, struct xt_conntrack_info *sinfo) exit_error(PARAMETER_PROBLEM, "Bad ctstate `%s'", arg); arg = comma+1; } - + if (!*arg) + exit_error(PARAMETER_PROBLEM, "`--ctstate' requires a list of " + "states with no spaces, e.g. " + "ESTABLISHED,RELATED"); if (strlen(arg) == 0 || !parse_state(arg, strlen(arg), sinfo)) exit_error(PARAMETER_PROBLEM, "Bad ctstate `%s'", arg); } diff --git a/extensions/libxt_state.c b/extensions/libxt_state.c index 95d7db57..66af518a 100644 --- a/extensions/libxt_state.c +++ b/extensions/libxt_state.c @@ -54,7 +54,10 @@ state_parse_states(const char *arg, struct xt_state_info *sinfo) exit_error(PARAMETER_PROBLEM, "Bad state `%s'", arg); arg = comma+1; } - + if (!*arg) + exit_error(PARAMETER_PROBLEM, "`--state' requires a list of " + "states with no spaces, e.g. " + "ESTABLISHED,RELATED"); if (strlen(arg) == 0 || !state_parse_state(arg, strlen(arg), sinfo)) exit_error(PARAMETER_PROBLEM, "Bad state `%s'", arg); } -- cgit v1.2.3