X-Git-Url: http://git.archive.openwrt.org/?p=project%2Ffirewall3.git;a=blobdiff_plain;f=options.c;h=6f96681561cbeec9b782da075dab1880a8568400;hp=5a7a901a6433d47b032b9a7e01b0ba3900b2d947;hb=88227a80c05cc305711160ba37e6c134654672a4;hpb=098b7d6add425aadb0cfe5af34c5d88d5320d33f diff --git a/options.c b/options.c index 5a7a901..6f96681 100644 --- a/options.c +++ b/options.c @@ -518,6 +518,7 @@ fw3_parse_protocol(void *ptr, const char *val, bool is_list) { struct fw3_protocol proto = { }; struct protoent *ent; + char *e; if (*val == '!') { @@ -556,9 +557,9 @@ fw3_parse_protocol(void *ptr, const char *val, bool is_list) return true; } - proto.protocol = strtoul(val, NULL, 10); + proto.protocol = strtoul(val, &e, 10); - if (errno == ERANGE || errno == EINVAL) + if ((e == val) || (*e != 0)) return false; put_value(ptr, &proto, sizeof(proto), is_list);