diff options
author | shin <shin@FreeBSD.org> | 1999-12-28 05:37:39 +0000 |
---|---|---|
committer | shin <shin@FreeBSD.org> | 1999-12-28 05:37:39 +0000 |
commit | 21448b46272429cd4260638c31ec239118e6fb02 (patch) | |
tree | 3761183d74afd9038bbe0f1e1a64339ed76d2fcc /lib/libc | |
parent | 8b8214b6d3bce6e64a982ab67d5d17dfa3f85b0b (diff) | |
download | FreeBSD-src-21448b46272429cd4260638c31ec239118e6fb02.zip FreeBSD-src-21448b46272429cd4260638c31ec239118e6fb02.tar.gz |
Small bug fix and improvements
(1)added error check of if_nameindex() return value at getaddrinfo().
(2)print out more detailed information when getaddrinfo() error value
is EAI_SYSTEM.(in this case system error num is kept in errno)
(1) is Discovered by: jinmei@kame.net in KAME environment.
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/net/getaddrinfo.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/libc/net/getaddrinfo.c b/lib/libc/net/getaddrinfo.c index 79b07de..dd85243 100644 --- a/lib/libc/net/getaddrinfo.c +++ b/lib/libc/net/getaddrinfo.c @@ -766,6 +766,10 @@ explore_numeric_scope(pai, hostname, servname, res) #ifdef INET6 case AF_INET6: scope = if_nametoindex(cp); + if (scope == 0) { + error = EAI_SYSTEM; + goto free; + } break; #endif } @@ -784,6 +788,9 @@ explore_numeric_scope(pai, hostname, servname, res) } } +#ifdef INET6 +free: +#endif free(hostname2); return error; |