diff options
Diffstat (limited to 'net-firewall/iptables/files/iptables-1.4.0-in6-glibc-2.8.patch')
-rw-r--r-- | net-firewall/iptables/files/iptables-1.4.0-in6-glibc-2.8.patch | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/net-firewall/iptables/files/iptables-1.4.0-in6-glibc-2.8.patch b/net-firewall/iptables/files/iptables-1.4.0-in6-glibc-2.8.patch new file mode 100644 index 000000000000..a46a146409e3 --- /dev/null +++ b/net-firewall/iptables/files/iptables-1.4.0-in6-glibc-2.8.patch @@ -0,0 +1,26 @@ +use the proper api to access the data structures + +http://bugs.gentoo.org/225505 + +--- libiptc/libip6tc.c ++++ libiptc/libip6tc.c +@@ -113,7 +113,7 @@ + #include "libiptc.c" + + #define BIT6(a, l) \ +- ((ntohl(a->in6_u.u6_addr32[(l) / 32]) >> (31 - ((l) & 31))) & 1) ++ ((ntohl(a->s6_addr32[(l) / 32]) >> (31 - ((l) & 31))) & 1) + + int + ipv6_prefix_length(const struct in6_addr *a) +--- ip6tables.c ++++ ip6tables.c +@@ -678,7 +678,7 @@ + for (i = 0, j = 0; i < n; i++) { + int k; + for (k = 0; k < 4; k++) +- addrp[j].in6_u.u6_addr32[k] &= maskp->in6_u.u6_addr32[k]; ++ addrp[j].s6_addr32[k] &= maskp->s6_addr32[k]; + j++; + for (k = 0; k < j - 1; k++) { + if (IN6_ARE_ADDR_EQUAL(&addrp[k], &addrp[j - 1])) { |