diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | resolv/inet_ntop.c | 10 | ||||
-rw-r--r-- | resolv/nsap_addr.c | 3 |
3 files changed, 10 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog index 33f2662196..072c2363fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 1999-10-02 Ulrich Drepper <drepper@cygnus.com> + * resolv/nsap_addr.c (inet_nsap_addr): Little optimization. + + * resolv/inet_ntop.c (inet_ntop4): Little optimization. + (inet_ntop6): Likewise. + * resolv/inet_net_pton.c (inet_net_pton_ipv4): Prevent buffer overruns. diff --git a/resolv/inet_ntop.c b/resolv/inet_ntop.c index 644abee4a7..2f076d4ba4 100644 --- a/resolv/inet_ntop.c +++ b/resolv/inet_ntop.c @@ -97,8 +97,7 @@ inet_ntop4(src, dst, size) __set_errno (ENOSPC); return (NULL); } - strcpy(dst, tmp); - return (dst); + return strcpy(dst, tmp); } /* const char * @@ -132,8 +131,8 @@ inet_ntop6(src, dst, size) * Find the longest run of 0x00's in src[] for :: shorthanding. */ memset(words, '\0', sizeof words); - for (i = 0; i < IN6ADDRSZ; i++) - words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3)); + for (i = 0; i < IN6ADDRSZ; i += 2) + words[i / 2] = (src[i] << 8) | src[i + 1]; best.base = -1; cur.base = -1; for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++) { @@ -194,6 +193,5 @@ inet_ntop6(src, dst, size) __set_errno (ENOSPC); return (NULL); } - strcpy(dst, tmp); - return (dst); + return strcpy(dst, tmp); } diff --git a/resolv/nsap_addr.c b/resolv/nsap_addr.c index 2222cda75a..53a19d59be 100644 --- a/resolv/nsap_addr.c +++ b/resolv/nsap_addr.c @@ -60,8 +60,7 @@ inet_nsap_addr(ascii, binary, maxlen) continue; if (!isascii(c)) return (0); - if (islower(c)) - c = toupper(c); + c = toupper(c); if (isxdigit(c)) { nib = xtob(c); if ((c = *ascii++)) { |