openwrt-packages/ipv6/tayga/patches/003-RFC8215.patch

14 lines
424 B
Diff

--- a/addrmap.c
+++ b/addrmap.c
@@ -44,7 +44,9 @@ int validate_ip4_addr(const struct in_ad
int validate_ip6_addr(const struct in6_addr *a)
{
/* Well-known prefix for NAT64 */
- if (a->s6_addr32[0] == WKPF && !a->s6_addr32[1] && !a->s6_addr32[2])
+ if (a->s6_addr32[0] == WKPF &&
+ (!a->s6_addr32[1] || (a->s6_addr16[2] == htonl(0x0001)))
+ && !a->s6_addr32[2])
return 0;
/* Reserved per RFC 2373 */