diff options
Diffstat (limited to 'lib/libc/net/ether_addr.c')
-rw-r--r-- | lib/libc/net/ether_addr.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/libc/net/ether_addr.c b/lib/libc/net/ether_addr.c index a6f77ab..f2caeea 100644 --- a/lib/libc/net/ether_addr.c +++ b/lib/libc/net/ether_addr.c @@ -35,7 +35,7 @@ * Center for Telecommunications Research * Columbia University, New York City * - * $Id: ether_addr.c,v 1.5 1996/12/05 18:46:19 jkh Exp $ + * $Id: ether_addr.c,v 1.6 1996/12/10 17:19:09 wollman Exp $ */ @@ -132,7 +132,7 @@ int ether_ntohost(hostname, e) struct ether_addr *e; { FILE *fp; - char buf[BUFSIZ]; + char buf[BUFSIZ + 2]; struct ether_addr local_ether; char local_host[MAXHOSTNAMELEN]; #ifdef YP @@ -157,7 +157,8 @@ int ether_ntohost(hostname, e) continue; } strncpy(buf, result, resultlen); - free(result); + buf[resultlen] = '\0'; + free(result); } #endif if (!ether_line(buf, &local_ether, local_host)) { @@ -183,7 +184,7 @@ int ether_hostton(hostname, e) struct ether_addr *e; { FILE *fp; - char buf[BUFSIZ]; + char buf[BUFSIZ + 2]; struct ether_addr local_ether; char local_host[MAXHOSTNAMELEN]; #ifdef YP @@ -206,6 +207,7 @@ int ether_hostton(hostname, e) continue; } strncpy(buf, result, resultlen); + buf[resultlen] = '\0'; free(result); } #endif |