aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Cama <b.cama@kerlink.fr>2017-06-22 15:49:28 +0200
committerFlorian Weimer <fweimer@redhat.com>2017-06-22 15:49:28 +0200
commitf768b450204f54b080ea5dc5c2071940604b424c (patch)
tree4a31fc6a3063a746ca92d5e904a9fb112722b019
parent0a47d031e44f15236bcef8aeba80e737bd013c6f (diff)
downloadglibc-f768b450204f54b080ea5dc5c2071940604b424c.tar
glibc-f768b450204f54b080ea5dc5c2071940604b424c.tar.gz
glibc-f768b450204f54b080ea5dc5c2071940604b424c.tar.bz2
glibc-f768b450204f54b080ea5dc5c2071940604b424c.zip
inet: __inet6_scopeid_pton should accept node-local addresses [BZ #21657]
-rw-r--r--ChangeLog7
-rw-r--r--inet/inet6_scopeid_pton.c1
-rw-r--r--inet/tst-inet6_scopeid_pton.c2
3 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 46a70ff7ce..72ab9bed63 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2017-06-21 Benjamin Cama <b.cama@kerlink.fr>
+
+ [BZ #21657]
+ * inet/inet6_scopeid_pton.c (__inet6_scopeid_pton): Permit scopes
+ on node-local addresses.
+ * inet/tst-inet6_scopeid_pton.c (do_test): Adjust test.
+
2017-06-21 Florian Weimer <fweimer@redhat.com>
* intl/loadmsgcat.c: Remove alloca support.
diff --git a/inet/inet6_scopeid_pton.c b/inet/inet6_scopeid_pton.c
index f842ffcadb..e09b1cb34d 100644
--- a/inet/inet6_scopeid_pton.c
+++ b/inet/inet6_scopeid_pton.c
@@ -33,6 +33,7 @@ __inet6_scopeid_pton (const struct in6_addr *address, const char *scope,
uint32_t *result)
{
if (IN6_IS_ADDR_LINKLOCAL (address)
+ || IN6_IS_ADDR_MC_NODELOCAL (address)
|| IN6_IS_ADDR_MC_LINKLOCAL (address))
{
uint32_t number = __if_nametoindex (scope);
diff --git a/inet/tst-inet6_scopeid_pton.c b/inet/tst-inet6_scopeid_pton.c
index a1bafa9021..8225b3b80a 100644
--- a/inet/tst-inet6_scopeid_pton.c
+++ b/inet/tst-inet6_scopeid_pton.c
@@ -218,9 +218,9 @@ do_test (void)
{
expect_success ("fe80::1", interface_name, interface_index);
expect_success ("ff02::1", interface_name, interface_index);
+ expect_success ("ff01::1", interface_name, interface_index);
expect_failure ("::", interface_name);
expect_failure ("::1", interface_name);
- expect_failure ("ff01::1", interface_name);
expect_failure ("2001:db8::1", interface_name);
}