diff options
author | Joe Orton <jorton@apache.org> | 2017-11-29 13:31:09 +0000 |
---|---|---|
committer | Joe Orton <jorton@apache.org> | 2017-11-29 13:31:09 +0000 |
commit | 44008bf4481482ed5aecfa70ca7918e124735d1c (patch) | |
tree | 91e1488eab4b988ae14bfd957ee7d5ada7701017 /network_io | |
parent | e08c6d42bdf4165f066eb1e1326eeecd2bce6b65 (diff) | |
download | apr-44008bf4481482ed5aecfa70ca7918e124735d1c.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: https://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.c | 3 |
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; } |