From: Phil Oester Date: Tue, 21 Sep 2004 10:49:13 +0000 (+0000) Subject: Fix half-working ipv6 limit invert check (Phil Oester) X-Git-Tag: v1.3.0-rc1~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57ff0b441bab760d0b78d762b6367af1b1a67a1f;p=thirdparty%2Fiptables.git Fix half-working ipv6 limit invert check (Phil Oester) --- diff --git a/extensions/libip6t_limit.c b/extensions/libip6t_limit.c index e141d01b..5084946a 100644 --- a/extensions/libip6t_limit.c +++ b/extensions/libip6t_limit.c @@ -104,19 +104,14 @@ parse(int c, char **argv, int invert, unsigned int *flags, switch(c) { case '%': - if (check_inverse(optarg, &invert, NULL, 0)) - exit_error(PARAMETER_PROBLEM, - "Unexpected `!' after --limit"); + if (check_inverse(argv[optind-1], &invert, &optind, 0)) break; if (!parse_rate(optarg, &r->avg)) exit_error(PARAMETER_PROBLEM, "bad rate `%s'", optarg); break; case '$': - if (check_inverse(optarg, &invert, NULL, 0)) - exit_error(PARAMETER_PROBLEM, - "Unexpected `!' after --limit-burst"); - + if (check_inverse(argv[optind-1], &invert, &optind, 0)) break; if (string_to_number(optarg, 0, 10000, &num) == -1) exit_error(PARAMETER_PROBLEM, "bad --limit-burst `%s'", optarg); @@ -127,6 +122,10 @@ parse(int c, char **argv, int invert, unsigned int *flags, return 0; } + if (invert) + exit_error(PARAMETER_PROBLEM, + "limit does not support invert"); + return 1; }