diff options
| author | Adam Tkac <atkac@fedoraproject.org> | 2008-05-06 09:44:46 +0000 |
|---|---|---|
| committer | Adam Tkac <atkac@fedoraproject.org> | 2008-05-06 09:44:46 +0000 |
| commit | db5acf9fc2c83de392ff64219a513a907c7c632c (patch) | |
| tree | 6661e3910aab8ba484b5e6384baf041be74f1feb /bind-9.5-any.patch | |
| parent | ab8076b76df2b9d6347182a534a3cec1fba87afa (diff) | |
- addresses 0.0.0.0 and ::0 really match any (#275091, comment #28)
Diffstat (limited to 'bind-9.5-any.patch')
| -rw-r--r-- | bind-9.5-any.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/bind-9.5-any.patch b/bind-9.5-any.patch new file mode 100644 index 0000000..55e96fc --- /dev/null +++ b/bind-9.5-any.patch @@ -0,0 +1,43 @@ +diff -up bind-9.5.0b3/lib/isc/netaddr.c.any bind-9.5.0b3/lib/isc/netaddr.c +--- bind-9.5.0b3/lib/isc/netaddr.c.any 2008-05-05 22:01:29.000000000 +0200 ++++ bind-9.5.0b3/lib/isc/netaddr.c 2008-05-05 22:24:52.000000000 +0200 +@@ -69,10 +69,11 @@ isc_boolean_t + isc_netaddr_eqprefix(const isc_netaddr_t *a, const isc_netaddr_t *b, + unsigned int prefixlen) + { +- const unsigned char *pa, *pb; ++ const unsigned char *pa, *pb, *pany; + unsigned int ipabytes; /* Length of whole IP address in bytes */ + unsigned int nbytes; /* Number of significant whole bytes */ + unsigned int nbits; /* Number of significant leftover bits */ ++ isc_netaddr_t any; /* represents 0.0.0.0 or ::0 */ + + REQUIRE(a != NULL && b != NULL); + +@@ -86,11 +87,15 @@ isc_netaddr_eqprefix(const isc_netaddr_t + case AF_INET: + pa = (const unsigned char *) &a->type.in; + pb = (const unsigned char *) &b->type.in; ++ isc_netaddr_any(&any); ++ pany = (const unsigned char *) &any.type.in; + ipabytes = 4; + break; + case AF_INET6: + pa = (const unsigned char *) &a->type.in6; + pb = (const unsigned char *) &b->type.in6; ++ isc_netaddr_any6(&any); ++ pany = (const unsigned char *) &any.type.in6; + ipabytes = 16; + break; + default: +@@ -99,6 +104,10 @@ isc_netaddr_eqprefix(const isc_netaddr_t + return (ISC_FALSE); + } + ++ if (memcmp(pa, pany, ipabytes) == 0 || ++ memcmp(pb, pany, ipabytes) == 0) ++ return (ISC_TRUE); ++ + /* + * Don't crash if we get a pattern like 10.0.0.1/9999999. + */ |
