}
} else {
char *endp = NULL;
- unsigned long val = strtoul(slash+1, &endp, 0);
- if (slash+1 == endp || (endp && *endp != '\0')) {
+ int error = 0;
+ unsigned long val;
+
+ val = strtoul_err(slash+1, &endp, 0, &error);
+ if (slash+1 == endp || (endp && *endp != '\0') || error != 0) {
return false;
}
if (!make_netmask(&ss_mask, &ss_tok, val)) {