diff options
author | Jim Meyering <jim@meyering.net> | 2000-06-21 13:00:49 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2000-06-21 13:00:49 +0000 |
commit | fc71e28b65ee094911e4596f2e76e5023fb62136 (patch) | |
tree | 2f6b3956d6e39dbbad200cf4b80439f047a905fb | |
parent | d32395693a3c86ae5801bc24e7d6d4fea6de6b46 (diff) | |
download | coreutils-fc71e28b65ee094911e4596f2e76e5023fb62136.tar.xz |
(canon_host): Use malloc and memcpy to copy an
address, not strdup. Include <stdlib.h> and don't declare free().
-rw-r--r-- | lib/canon-host.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/canon-host.c b/lib/canon-host.c index 180057c3f..74c36f6f7 100644 --- a/lib/canon-host.c +++ b/lib/canon-host.c @@ -26,6 +26,9 @@ #ifdef HAVE_UNISTD_H # include <unistd.h> #endif +#ifdef HAVE_STDLIB_H +# include <stdlib.h> +#endif #ifdef HAVE_STRING_H # include <string.h> #endif @@ -46,7 +49,6 @@ #ifndef strdup char *strdup (); #endif -void free (); /* Returns the canonical hostname associated with HOST (allocated in a static buffer), or 0 if it can't be determined. */ @@ -80,11 +82,12 @@ canon_host (const char *host) directly to gethostbyaddr because on some systems he->h_addr is located in a static library buffer that is reused in the gethostbyaddr call. Make a copy and use that instead. */ - char *h_addr_copy = strdup (he->h_addr); + char *h_addr_copy = (char *) malloc (he->h_length); if (h_addr_copy == NULL) he = NULL; else { + memcpy (h_addr_copy, he->h_addr, he->h_length); he = gethostbyaddr (h_addr_copy, he->h_length, he->h_addrtype); free (h_addr_copy); } |