diff --git a/release/src/router/iptables/ip6tables.c b/release/src/router/iptables/ip6tables.c index c0b868a9ecf..57f4724e5e0 100644 --- a/release/src/router/iptables/ip6tables.c +++ b/release/src/router/iptables/ip6tables.c @@ -973,7 +973,7 @@ string_to_number_ll(const char *s, unsigned long long min, unsigned long long ma /* Handle hex, octal, etc. */ errno = 0; number = strtoull(s, &end, 0); - if (*end == '\0' && end != s) { + if ((*end == '\0' || *end == '/') && end != s) { /* we parsed a number, let's see if we want this */ if (errno != ERANGE && min <= number && (!max || number <= max)) { *ret = number; diff --git a/release/src/router/iptables/iptables.c b/release/src/router/iptables/iptables.c index 724acd5fd02..0bc5f74fea8 100644 --- a/release/src/router/iptables/iptables.c +++ b/release/src/router/iptables/iptables.c @@ -1007,7 +1007,7 @@ string_to_number_ll(const char *s, unsigned long long min, unsigned long long ma /* Handle hex, octal, etc. */ errno = 0; number = strtoull(s, &end, 0); - if (*end == '\0' && end != s) { + if ((*end == '\0' || *end == '/') && end != s) { /* we parsed a number, let's see if we want this */ if (errno != ERANGE && min <= number && (!max || number <= max)) { *ret = number;