summaryrefslogtreecommitdiffstats
path: root/extensions/libip6t_HL.c
diff options
context:
space:
mode:
authorMaciej Soltysiak <solt@dns.toxicfilms.tv>2004-07-28 14:08:22 +0000
committerPatrick McHardy <kaber@trash.net>2004-07-28 14:08:22 +0000
commit46e8538e2254fcd48517067b659bcdc8ba1c3cc0 (patch)
tree9245cbf5655f8c4090d15593e0748cabdd401f40 /extensions/libip6t_HL.c
parent37fd00d68995779dafde80ee51eaeaaaa5c149c0 (diff)
Limit ttl-value to 0-255 (Maciej Soltysiak <solt@dns.toxicfilms.tv>)
Diffstat (limited to 'extensions/libip6t_HL.c')
-rw-r--r--extensions/libip6t_HL.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/extensions/libip6t_HL.c b/extensions/libip6t_HL.c
index 7c249152..ffe86d09 100644
--- a/extensions/libip6t_HL.c
+++ b/extensions/libip6t_HL.c
@@ -24,9 +24,9 @@ static void help(void)
{
printf(
"HL target v%s options\n"
-" --hl-set value Set HL to <value>\n"
-" --hl-dec value Decrement HL by <value>\n"
-" --hl-inc value Increment HL by <value>\n"
+" --hl-set value Set HL to <value 0-255>\n"
+" --hl-dec value Decrement HL by <value 1-255>\n"
+" --hl-inc value Increment HL by <value 1-255>\n"
, IPTABLES_VERSION);
}
@@ -35,7 +35,7 @@ static int parse(int c, char **argv, int invert, unsigned int *flags,
struct ip6t_entry_target **target)
{
struct ip6t_HL_info *info = (struct ip6t_HL_info *) (*target)->data;
- u_int8_t value;
+ unsigned int value;
if (*flags & IP6T_HL_USED) {
exit_error(PARAMETER_PROBLEM,
@@ -50,7 +50,9 @@ static int parse(int c, char **argv, int invert, unsigned int *flags,
exit_error(PARAMETER_PROBLEM,
"HL: unexpected `!'");
- value = atoi(optarg);
+ if (string_to_number(optarg, 0, 255, &value) == -1)
+ exit_error(PARAMETER_PROBLEM,
+ "HL: Expected value between 0 and 255");
switch (c) {