diff options
-rw-r--r-- | extensions/libip6t_condition.c | 7 | ||||
-rw-r--r-- | extensions/libipt_condition.c | 7 |
2 files changed, 8 insertions, 6 deletions
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 <stdio.h> #include <stdlib.h> #include <string.h> @@ -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 <stdio.h> #include <stdlib.h> #include <string.h> @@ -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); } |