diff options
| author | deraadt <> | 1996-09-28 13:26:34 +0000 |
|---|---|---|
| committer | deraadt <> | 1996-09-28 13:26:34 +0000 |
| commit | f31b0f0048dca1800699df5a79d7f3c9067a6a03 (patch) | |
| tree | 86701f14eefe0a1d6cd7ded211d56062938e9607 /src/lib/libc | |
| parent | 43ef223d5a60bdb1a88a9a2fe624015c4732ed01 (diff) | |
| download | openbsd-f31b0f0048dca1800699df5a79d7f3c9067a6a03.tar.gz openbsd-f31b0f0048dca1800699df5a79d7f3c9067a6a03.tar.bz2 openbsd-f31b0f0048dca1800699df5a79d7f3c9067a6a03.zip | |
bzzzt
Diffstat (limited to 'src/lib/libc')
| -rw-r--r-- | src/lib/libc/net/gethostnamadr.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/lib/libc/net/gethostnamadr.c b/src/lib/libc/net/gethostnamadr.c index c9220e1cf6..6d5124d308 100644 --- a/src/lib/libc/net/gethostnamadr.c +++ b/src/lib/libc/net/gethostnamadr.c | |||
| @@ -52,7 +52,7 @@ | |||
| 52 | */ | 52 | */ |
| 53 | 53 | ||
| 54 | #if defined(LIBC_SCCS) && !defined(lint) | 54 | #if defined(LIBC_SCCS) && !defined(lint) |
| 55 | static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.11 1996/09/27 18:50:04 deraadt Exp $"; | 55 | static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.12 1996/09/28 13:26:34 deraadt Exp $"; |
| 56 | #endif /* LIBC_SCCS and not lint */ | 56 | #endif /* LIBC_SCCS and not lint */ |
| 57 | 57 | ||
| 58 | #include <sys/param.h> | 58 | #include <sys/param.h> |
| @@ -171,7 +171,6 @@ getanswer(answer, anslen, iquery) | |||
| 171 | } | 171 | } |
| 172 | cp += n + QFIXEDSZ; | 172 | cp += n + QFIXEDSZ; |
| 173 | host.h_name = bp; | 173 | host.h_name = bp; |
| 174 | host.h_length = INADDRSZ; | ||
| 175 | n = strlen(bp); | 174 | n = strlen(bp); |
| 176 | if (n >= MAXHOSTNAMELEN) | 175 | if (n >= MAXHOSTNAMELEN) |
| 177 | host.h_name[MAXHOSTNAMELEN-1] = '\0'; | 176 | host.h_name[MAXHOSTNAMELEN-1] = '\0'; |
| @@ -241,17 +240,21 @@ getanswer(answer, anslen, iquery) | |||
| 241 | continue; | 240 | continue; |
| 242 | } | 241 | } |
| 243 | 242 | ||
| 244 | if (n != host.h_length) { | 243 | if (haveanswer) { |
| 245 | cp += n; | 244 | if (n != host.h_length) { |
| 246 | continue; | 245 | cp += n; |
| 247 | } | 246 | continue; |
| 248 | if (class != getclass) { | 247 | } |
| 249 | cp += n; | 248 | if (class != getclass) { |
| 250 | continue; | 249 | cp += n; |
| 251 | } | 250 | continue; |
| 252 | if (!haveanswer) { | 251 | } |
| 252 | } else { | ||
| 253 | host.h_length = n; | ||
| 253 | getclass = class; | 254 | getclass = class; |
| 254 | host.h_addrtype = (class == C_IN) ? AF_INET : AF_UNSPEC; | 255 | host.h_addrtype = (class == C_IN) ? AF_INET : AF_UNSPEC; |
| 256 | if (host.h_addrtype == AF_INET) | ||
| 257 | host.h_length = INADDRSZ; | ||
| 255 | if (!iquery) { | 258 | if (!iquery) { |
| 256 | host.h_name = bp; | 259 | host.h_name = bp; |
| 257 | bp += strlen(bp) + 1; | 260 | bp += strlen(bp) + 1; |
