diff options
author | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2011-04-09 21:29:08 +0200 |
---|---|---|
committer | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2011-04-09 21:29:08 +0200 |
commit | aeb8af909befedbfc85e9f184471b219e4ea191a (patch) | |
tree | 622c6a5fa5494f1ccb60cfa8d0a3d3aa2aa5c6bf /extensions/libxt_set.h | |
parent | 6a86854bf91227a70392fc2665ed4f99af0229e3 (diff) | |
download | platform_external_iptables-aeb8af909befedbfc85e9f184471b219e4ea191a.tar.gz platform_external_iptables-aeb8af909befedbfc85e9f184471b219e4ea191a.tar.bz2 platform_external_iptables-aeb8af909befedbfc85e9f184471b219e4ea191a.zip |
Fix set match/target direction parser
The direction parser did not catch when more src/dst direction
parameters were supplied than allowed.
Diffstat (limited to 'extensions/libxt_set.h')
-rw-r--r-- | extensions/libxt_set.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/extensions/libxt_set.h b/extensions/libxt_set.h index 6b936911..4ac84fa9 100644 --- a/extensions/libxt_set.h +++ b/extensions/libxt_set.h @@ -114,7 +114,7 @@ parse_dirs_v0(const char *opt_arg, struct xt_set_info_v0 *info) if (tmp) xtables_error(PARAMETER_PROBLEM, "Can't be more src/dst options than %i.", - IPSET_DIM_MAX - 1); + IPSET_DIM_MAX); free(saved); } @@ -124,9 +124,8 @@ parse_dirs(const char *opt_arg, struct xt_set_info *info) { char *saved = strdup(opt_arg); char *ptr, *tmp = saved; - int i = 0; - while (i < (IPSET_DIM_MAX - 1) && tmp != NULL) { + while (info->dim < IPSET_DIM_MAX && tmp != NULL) { info->dim++; ptr = strsep(&tmp, ","); if (strncmp(ptr, "src", 3) == 0) @@ -139,7 +138,7 @@ parse_dirs(const char *opt_arg, struct xt_set_info *info) if (tmp) xtables_error(PARAMETER_PROBLEM, "Can't be more src/dst options than %i.", - IPSET_DIM_MAX - 1); + IPSET_DIM_MAX); free(saved); } |