diff options
author | deraadt <> | 1996-09-03 07:27:45 +0000 |
---|---|---|
committer | deraadt <> | 1996-09-03 07:27:45 +0000 |
commit | 77dd3257664950f47573d029de19c3c0564bc83d (patch) | |
tree | a7377b9338c7691376554801d844ba72ff025929 | |
parent | 824a1013c46deb16f9b4ab1d2d1382523cf69fe6 (diff) | |
download | openbsd-77dd3257664950f47573d029de19c3c0564bc83d.tar.gz openbsd-77dd3257664950f47573d029de19c3c0564bc83d.tar.bz2 openbsd-77dd3257664950f47573d029de19c3c0564bc83d.zip |
constrain to MAXHOSTNAMELEN
-rw-r--r-- | src/lib/libc/net/getnetent.c | 9 |
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) |
35 | static char rcsid[] = "$OpenBSD: getnetent.c,v 1.4 1996/08/19 08:28:47 tholo Exp $"; | 35 | static 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'; |