summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorderaadt <>1996-09-03 07:27:45 +0000
committerderaadt <>1996-09-03 07:27:45 +0000
commit77dd3257664950f47573d029de19c3c0564bc83d (patch)
treea7377b9338c7691376554801d844ba72ff025929
parent824a1013c46deb16f9b4ab1d2d1382523cf69fe6 (diff)
downloadopenbsd-77dd3257664950f47573d029de19c3c0564bc83d.tar.gz
openbsd-77dd3257664950f47573d029de19c3c0564bc83d.tar.bz2
openbsd-77dd3257664950f47573d029de19c3c0564bc83d.zip
constrain to MAXHOSTNAMELEN
-rw-r--r--src/lib/libc/net/getnetent.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/lib/libc/net/getnetent.c b/src/lib/libc/net/getnetent.c
index 862596c40f..8c3ced2214 100644
--- a/src/lib/libc/net/getnetent.c
+++ b/src/lib/libc/net/getnetent.c
@@ -32,7 +32,7 @@
32 */ 32 */
33 33
34#if defined(LIBC_SCCS) && !defined(lint) 34#if defined(LIBC_SCCS) && !defined(lint)
35static char rcsid[] = "$OpenBSD: getnetent.c,v 1.4 1996/08/19 08:28:47 tholo Exp $"; 35static char rcsid[] = "$OpenBSD: getnetent.c,v 1.5 1996/09/03 07:27:45 deraadt Exp $";
36#endif /* LIBC_SCCS and not lint */ 36#endif /* LIBC_SCCS and not lint */
37 37
38#include <sys/types.h> 38#include <sys/types.h>
@@ -91,6 +91,8 @@ again:
91 goto again; 91 goto again;
92 *cp = '\0'; 92 *cp = '\0';
93 net.n_name = p; 93 net.n_name = p;
94 if (strlen(net.n_name) >= MAXHOSTNAMELEN-1)
95 net.n_name[MAXHOSTNAMELEN-1] = '\0';
94 cp = strpbrk(p, " \t"); 96 cp = strpbrk(p, " \t");
95 if (cp == NULL) 97 if (cp == NULL)
96 goto again; 98 goto again;
@@ -110,8 +112,11 @@ again:
110 cp++; 112 cp++;
111 continue; 113 continue;
112 } 114 }
113 if (q < &net_aliases[MAXALIASES - 1]) 115 if (q < &net_aliases[MAXALIASES - 1]) {
114 *q++ = cp; 116 *q++ = cp;
117 if (strlen(cp) >= MAXHOSTNAMELEN-1)
118 cp[MAXHOSTNAMELEN-1] = '\0';
119 }
115 cp = strpbrk(cp, " \t"); 120 cp = strpbrk(cp, " \t");
116 if (cp != NULL) 121 if (cp != NULL)
117 *cp++ = '\0'; 122 *cp++ = '\0';