From: Stephane Ouellette Date: Sun, 27 Apr 2003 13:07:18 +0000 (+0000) Subject: the following two patches move the call to check_inverse() to a saner X-Git-Tag: v1.2.9-rc1~54 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ed30c6bd6f4e9745468b095fbf8b1d0bd9844114;p=thirdparty%2Fiptables.git the following two patches move the call to check_inverse() to a saner place and surround the condition name by double-quotes in save(). (Stephane Ouellette) --- diff --git a/extensions/libip6t_condition.c b/extensions/libip6t_condition.c index 783b4662..f58b3bc3 100644 --- a/extensions/libip6t_condition.c +++ b/extensions/libip6t_condition.c @@ -1,3 +1,4 @@ +/* Shared library add-on to ip6tables for condition match */ #include #include #include @@ -39,13 +40,13 @@ parse(int c, char **argv, int invert, unsigned int *flags, struct condition6_info *info = (struct condition6_info *) (*match)->data; - check_inverse(optarg, &invert, &optind, 0); - if (c == 'X') { if (*flags) exit_error(PARAMETER_PROBLEM, "Can't specify multiple conditions"); + check_inverse(optarg, &invert, &optind, 0); + if (strlen(argv[optind - 1]) < CONDITION6_NAME_LEN) strcpy(info->name, argv[optind - 1]); else @@ -88,7 +89,7 @@ save(const struct ip6t_ip6 *ip, const struct condition6_info *info = (const struct condition6_info *) match->data; - printf("--condition %s%s ", (info->invert) ? "! " : "", info->name); + printf("--condition %s\"%s\" ", (info->invert) ? "! " : "", info->name); } diff --git a/extensions/libipt_condition.c b/extensions/libipt_condition.c index f15c94ca..750111b4 100644 --- a/extensions/libipt_condition.c +++ b/extensions/libipt_condition.c @@ -1,3 +1,4 @@ +/* Shared library add-on to iptables for condition match */ #include #include #include @@ -39,13 +40,13 @@ parse(int c, char **argv, int invert, unsigned int *flags, struct condition_info *info = (struct condition_info *) (*match)->data; - check_inverse(optarg, &invert, &optind, 0); - if (c == 'X') { if (*flags) exit_error(PARAMETER_PROBLEM, "Can't specify multiple conditions"); + check_inverse(optarg, &invert, &optind, 0); + if (strlen(argv[optind - 1]) < CONDITION_NAME_LEN) strcpy(info->name, argv[optind - 1]); else @@ -88,7 +89,7 @@ save(const struct ipt_ip *ip, const struct condition_info *info = (const struct condition_info *) match->data; - printf("--condition %s%s ", (info->invert) ? "! " : "", info->name); + printf("--condition %s\"%s\" ", (info->invert) ? "! " : "", info->name); }