diff options
author | itojun <itojun> | 2000-10-07 05:20:24 +0000 |
---|---|---|
committer | itojun <itojun> | 2000-10-07 05:20:24 +0000 |
commit | 88633a833719baba8be6525451e59306674322b4 (patch) | |
tree | c20594f31e4caee302109fece0ac48e6c756149d | |
parent | 92ca94f40f83181af6c341356c11b3516ed5b4b5 (diff) | |
download | tcpdump-88633a833719baba8be6525451e59306674322b4.tar.gz |
repair 1-byte buffer overrun
-rw-r--r-- | missing/getnameinfo.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/missing/getnameinfo.c b/missing/getnameinfo.c index d525f455..01bd8364 100644 --- a/missing/getnameinfo.c +++ b/missing/getnameinfo.c @@ -43,7 +43,7 @@ #ifndef lint static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/missing/getnameinfo.c,v 1.6 2000-01-21 04:06:19 itojun Exp $"; + "@(#) $Header: /tcpdump/master/tcpdump/missing/getnameinfo.c,v 1.7 2000-10-07 05:20:24 itojun Exp $"; #endif #include <sys/types.h> @@ -159,12 +159,12 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) (flags & NI_DGRAM) ? "udp" : "tcp"); } if (sp) { - if (strlen(sp->s_name) > servlen) + if (strlen(sp->s_name) + 1 > servlen) return ENI_MEMORY; strcpy(serv, sp->s_name); } else { snprintf(numserv, sizeof(numserv), "%d", ntohs(port)); - if (strlen(numserv) > servlen) + if (strlen(numserv) + 1 > servlen) return ENI_MEMORY; strcpy(serv, numserv); } @@ -220,7 +220,7 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) if (inet_ntop(afd->a_af, addr, numaddr, sizeof(numaddr)) == NULL) return ENI_SYSTEM; - if (strlen(numaddr) > hostlen) + if (strlen(numaddr) + 1 > hostlen) return ENI_MEMORY; strcpy(host, numaddr); #if defined(INET6) && defined(NI_WITHSCOPEID) @@ -260,7 +260,7 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) p = strchr(hp->h_name, '.'); if (p) *p = '\0'; } - if (strlen(hp->h_name) > hostlen) { + if (strlen(hp->h_name) + 1 > hostlen) { #ifdef USE_GETIPNODEBY freehostent(hp); #endif @@ -276,7 +276,7 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) if (inet_ntop(afd->a_af, addr, numaddr, sizeof(numaddr)) == NULL) return ENI_NOHOSTNAME; - if (strlen(numaddr) > hostlen) + if (strlen(numaddr) + 1 > hostlen) return ENI_MEMORY; strcpy(host, numaddr); } |