]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
Jan Echternach's patch for bignums
authorJan Echternach <echter@informatik.uni-rostock.de>
Sat, 26 Aug 2000 04:44:39 +0000 (04:44 +0000)
committerRusty Russell <rusty@rustcorp.com.au>
Sat, 26 Aug 2000 04:44:39 +0000 (04:44 +0000)
iptables.c

index 4dfa7d04eb4d048e56ce81b4f80bf6bf38da2b2d..92f0175dc076add73965b604adef21897cec63a5 100644 (file)
@@ -820,14 +820,15 @@ mask_to_dotted(const struct in_addr *mask)
 int
 string_to_number(const char *s, int min, int max)
 {
-       int number;
+       long number;
        char *end;
 
        /* Handle hex, octal, etc. */
-       number = (int)strtol(s, &end, 0);
+       errno = 0;
+       number = strtol(s, &end, 0);
        if (*end == '\0' && end != s) {
                /* we parsed a number, let's see if we want this */
-               if (min <= number && number <= max)
+               if (errno != ERANGE && min <= number && number <= max)
                        return number;
        }
        return -1;
@@ -894,7 +895,7 @@ find_target(const char *name, enum ipt_tryload tryload)
 }
 
 static struct option *
-merge_options(struct option *oldopts, struct option *newopts,
+merge_options(struct option *oldopts, const struct option *newopts,
              unsigned int *option_offset)
 {
        unsigned int num_old, num_new, i;