From 5221238b13eecb13a3607f247d887c29a15337de Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Wed, 23 May 2012 21:41:45 +0000 Subject: [PATCH] Fix strtoul() overflow handling git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@4318 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- iscsi-scst/usr/config.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/iscsi-scst/usr/config.c b/iscsi-scst/usr/config.c index 7b16f13aa..d795ddc46 100644 --- a/iscsi-scst/usr/config.c +++ b/iscsi-scst/usr/config.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -617,11 +618,11 @@ static int netmask_match_v4(struct sockaddr *sa1, struct sockaddr *sa2, uint32_t static int netmask_match(struct sockaddr *sa1, struct sockaddr *sa2, char *buf) { - int32_t mbit; + unsigned long mbit; uint8_t family = sa1->sa_family; mbit = strtoul(buf, NULL, 0); - if (mbit < 0 || + if (mbit == ULONG_MAX || (family == AF_INET && mbit > 31) || (family == AF_INET6 && mbit > 127)) return 0;