summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorshin <shin@FreeBSD.org>1999-12-28 05:37:39 +0000
committershin <shin@FreeBSD.org>1999-12-28 05:37:39 +0000
commit21448b46272429cd4260638c31ec239118e6fb02 (patch)
tree3761183d74afd9038bbe0f1e1a64339ed76d2fcc /lib
parent8b8214b6d3bce6e64a982ab67d5d17dfa3f85b0b (diff)
downloadFreeBSD-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')
-rw-r--r--lib/libc/net/getaddrinfo.c7
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;
OpenPOWER on IntegriCloud