From 5a58fd166c74849bfb2cf8de982fe15a3d064852 Mon Sep 17 00:00:00 2001 From: deraadt <> Date: Mon, 5 Aug 1996 15:58:02 +0000 Subject: truncate h_name and h_aliases[] to MAXHOSTNAMELEN --- src/lib/libc/net/gethostnamadr.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/lib') diff --git a/src/lib/libc/net/gethostnamadr.c b/src/lib/libc/net/gethostnamadr.c index a1fdba5f91..29705f7e9e 100644 --- a/src/lib/libc/net/gethostnamadr.c +++ b/src/lib/libc/net/gethostnamadr.c @@ -151,7 +151,10 @@ getanswer(answer, anslen, iquery) } cp += n + QFIXEDSZ; host.h_name = bp; - n = strlen(bp) + 1; + n = strlen(bp); + if (n >= MAXHOSTNAMELEN) + host.h_name[MAXHOSTNAMELEN-1] = '\0'; + n++; bp += n; buflen -= n; } else @@ -200,6 +203,9 @@ getanswer(answer, anslen, iquery) break; cp += n; host.h_name = bp; + n = strlen(host.h_name); + if (n >= MAXHOSTNAMELEN) + host.h_name[MAXHOSTNAMELEN-1] = '\0'; return(&host); } if (iquery || type != T_A) { @@ -226,6 +232,8 @@ getanswer(answer, anslen, iquery) host.h_addrtype = (class == C_IN) ? AF_INET : AF_UNSPEC; if (!iquery) { host.h_name = bp; + if (strlen(bp) >= MAXHOSTNAMELEN) + host.h_name[MAXHOSTNAMELEN-1] = '\0'; bp += strlen(bp) + 1; } } @@ -240,6 +248,8 @@ getanswer(answer, anslen, iquery) break; } bcopy(cp, *hap++ = bp, n); + if (n >= MAXHOSTNAMELEN) + bp[MAXHOSTNAMELEN-1] = '\0'; bp +=n; cp += n; haveanswer++; -- cgit v1.2.3-55-g6feb