summaryrefslogtreecommitdiff
path: root/network_io
diff options
context:
space:
mode:
authorjorton <jorton@13f79535-47bb-0310-9956-ffa450edef68>2017-11-29 13:31:09 +0000
committerjorton <jorton@13f79535-47bb-0310-9956-ffa450edef68>2017-11-29 13:31:09 +0000
commitf131518c84e03de1fecb89b865aede0b08cff5d7 (patch)
tree91e1488eab4b988ae14bfd957ee7d5ada7701017 /network_io
parent78d8a9229c72e1f31cb16900e11c4baccae5d38f (diff)
downloadlibapr-f131518c84e03de1fecb89b865aede0b08cff5d7.tar.gz
* network_io/unix/sockaddr.c (apr_sockaddr_zone_set): Fail
for an address which is not link-local. * include/apr_network_io.h: Document the above. * test/testsock.c (test_zone): Test for that. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@1816628 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'network_io')
-rw-r--r--network_io/unix/sockaddr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/network_io/unix/sockaddr.c b/network_io/unix/sockaddr.c
index 3b711fd5b..8e4bde3e3 100644
--- a/network_io/unix/sockaddr.c
+++ b/network_io/unix/sockaddr.c
@@ -1225,7 +1225,8 @@ APR_DECLARE(apr_status_t) apr_sockaddr_zone_set(apr_sockaddr_t *sa,
#else
unsigned int idx;
- if (sa->family != APR_INET6) {
+ if (sa->family != APR_INET6
+ || !IN6_IS_ADDR_LINKLOCAL((struct in6_addr *)sa->ipaddr_ptr)) {
return APR_EBADIP;
}