diff options
Diffstat (limited to 'lib/libc/net/inet_network.c')
-rw-r--r-- | lib/libc/net/inet_network.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/libc/net/inet_network.c b/lib/libc/net/inet_network.c index 2f38be2..e44257a 100644 --- a/lib/libc/net/inet_network.c +++ b/lib/libc/net/inet_network.c @@ -29,6 +29,8 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. + * + * $FreeBSD$ */ #if defined(LIBC_SCCS) && !defined(lint) @@ -60,13 +62,13 @@ again: if (*cp == 'x' || *cp == 'X') base = 16, cp++; while ((c = *cp) != 0) { - if (isdigit(c)) { + if (isdigit((unsigned char)c)) { val = (val * base) + (c - '0'); cp++; continue; } - if (base == 16 && isxdigit(c)) { - val = (val << 4) + (c + 10 - (islower(c) ? 'a' : 'A')); + if (base == 16 && isxdigit((unsigned char)c)) { + val = (val << 4) + (c + 10 - (islower((unsigned char)c) ? 'a' : 'A')); cp++; continue; } @@ -78,7 +80,7 @@ again: *pp++ = val, cp++; goto again; } - if (*cp && !isspace(*cp)) + if (*cp && !isspace((unsigned char)*cp)) return (INADDR_NONE); *pp++ = val; n = pp - parts; |