diff options
author | millert <> | 2003-10-03 19:48:10 +0000 |
---|---|---|
committer | millert <> | 2003-10-03 19:48:10 +0000 |
commit | bedb3b8f9695bdd235a0eac91c64164ffbe88240 (patch) | |
tree | 41f56aaba2bfb9e0dad222897fdfa90081647bcc /src/lib | |
parent | c984fc10dda97e0e52199715eeba2e8a16c00bba (diff) | |
download | openbsd-bedb3b8f9695bdd235a0eac91c64164ffbe88240.tar.gz openbsd-bedb3b8f9695bdd235a0eac91c64164ffbe88240.tar.bz2 openbsd-bedb3b8f9695bdd235a0eac91c64164ffbe88240.zip |
Fix off-by-one, patch from Patrick Latifi; closes PR 3492
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libc/net/gethostnamadr.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/libc/net/gethostnamadr.c b/src/lib/libc/net/gethostnamadr.c index 0be63bec83..89afb634f1 100644 --- a/src/lib/libc/net/gethostnamadr.c +++ b/src/lib/libc/net/gethostnamadr.c | |||
@@ -48,7 +48,7 @@ | |||
48 | */ | 48 | */ |
49 | 49 | ||
50 | #if defined(LIBC_SCCS) && !defined(lint) | 50 | #if defined(LIBC_SCCS) && !defined(lint) |
51 | static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.57 2003/06/27 22:23:05 vincent Exp $"; | 51 | static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.58 2003/10/03 19:48:10 millert Exp $"; |
52 | #endif /* LIBC_SCCS and not lint */ | 52 | #endif /* LIBC_SCCS and not lint */ |
53 | 53 | ||
54 | #include <sys/param.h> | 54 | #include <sys/param.h> |
@@ -231,19 +231,19 @@ getanswer(answer, anslen, qname, qtype) | |||
231 | continue; | 231 | continue; |
232 | } | 232 | } |
233 | cp += n; /* name */ | 233 | cp += n; /* name */ |
234 | if (cp > eom) | 234 | if (cp >= eom) |
235 | break; | 235 | break; |
236 | type = _getshort(cp); | 236 | type = _getshort(cp); |
237 | cp += INT16SZ; /* type */ | 237 | cp += INT16SZ; /* type */ |
238 | if (cp > eom) | 238 | if (cp >= eom) |
239 | break; | 239 | break; |
240 | class = _getshort(cp); | 240 | class = _getshort(cp); |
241 | cp += INT16SZ + INT32SZ; /* class, TTL */ | 241 | cp += INT16SZ + INT32SZ; /* class, TTL */ |
242 | if (cp > eom) | 242 | if (cp >= eom) |
243 | break; | 243 | break; |
244 | n = _getshort(cp); | 244 | n = _getshort(cp); |
245 | cp += INT16SZ; /* len */ | 245 | cp += INT16SZ; /* len */ |
246 | if (cp > eom) | 246 | if (cp >= eom) |
247 | break; | 247 | break; |
248 | if (type == T_SIG) { | 248 | if (type == T_SIG) { |
249 | /* XXX - ignore signatures as we don't use them yet */ | 249 | /* XXX - ignore signatures as we don't use them yet */ |