forked from pool/ipset
Jan Engelhardt
1e7c51b55c
OBS-URL: https://build.opensuse.org/package/show/security:netfilter/ipset?expand=0&rev=5
66 lines
2.3 KiB
Diff
66 lines
2.3 KiB
Diff
parent 5f5e497db1f0810ce50bc8807836312c75511079 (v6.10-9-g5f5e497)
|
|
commit b2d4e4b4e6c48dc0d53eeab3b52ce56f01a29397
|
|
Author: Jan Engelhardt <jengelh@medozas.de>
|
|
Date: Sat Dec 31 02:22:10 2011 +0100
|
|
|
|
kernel 3.3 support
|
|
---
|
|
kernel/net/netfilter/ipset/ip_set_getport.c | 6 ++++++
|
|
kernel/net/netfilter/ipset/ip_set_hash_ip.c | 2 +-
|
|
kernel/net/netfilter/ipset/ip_set_hash_net.c | 2 +-
|
|
3 files changed, 8 insertions(+), 2 deletions(-)
|
|
|
|
Index: ipset-6.11/kernel/net/netfilter/ipset/ip_set_getport.c
|
|
===================================================================
|
|
--- ipset-6.11.orig/kernel/net/netfilter/ipset/ip_set_getport.c
|
|
+++ ipset-6.11/kernel/net/netfilter/ipset/ip_set_getport.c
|
|
@@ -16,6 +16,7 @@
|
|
#include <linux/icmp.h>
|
|
#include <linux/icmpv6.h>
|
|
#include <linux/sctp.h>
|
|
+#include <linux/version.h>
|
|
#include <linux/netfilter_ipv6/ip6_tables.h>
|
|
#include <net/ip.h>
|
|
#include <net/ipv6.h>
|
|
@@ -119,9 +120,14 @@ ip_set_get_ip6_port(const struct sk_buff
|
|
{
|
|
int protoff;
|
|
u8 nexthdr;
|
|
+ __be16 frag_off;
|
|
|
|
nexthdr = ipv6_hdr(skb)->nexthdr;
|
|
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 3, 0)
|
|
protoff = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &nexthdr);
|
|
+#else
|
|
+ protoff = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &nexthdr, &frag_off);
|
|
+#endif
|
|
if (protoff < 0)
|
|
return false;
|
|
|
|
Index: ipset-6.11/kernel/net/netfilter/ipset/ip_set_hash_ip.c
|
|
===================================================================
|
|
--- ipset-6.11.orig/kernel/net/netfilter/ipset/ip_set_hash_ip.c
|
|
+++ ipset-6.11/kernel/net/netfilter/ipset/ip_set_hash_ip.c
|
|
@@ -241,7 +241,7 @@ hash_ip6_data_isnull(const struct hash_i
|
|
static inline void
|
|
hash_ip6_data_copy(struct hash_ip6_elem *dst, const struct hash_ip6_elem *src)
|
|
{
|
|
- ipv6_addr_copy(&dst->ip.in6, &src->ip.in6);
|
|
+ dst->ip.in6 = src->ip.in6;
|
|
}
|
|
|
|
static inline void
|
|
Index: ipset-6.11/kernel/net/netfilter/ipset/ip_set_hash_net.c
|
|
===================================================================
|
|
--- ipset-6.11.orig/kernel/net/netfilter/ipset/ip_set_hash_net.c
|
|
+++ ipset-6.11/kernel/net/netfilter/ipset/ip_set_hash_net.c
|
|
@@ -295,7 +295,7 @@ static inline void
|
|
hash_net6_data_copy(struct hash_net6_elem *dst,
|
|
const struct hash_net6_elem *src)
|
|
{
|
|
- ipv6_addr_copy(&dst->ip.in6, &src->ip.in6);
|
|
+ dst->ip.in6 = src->ip.in6;
|
|
dst->cidr = src->cidr;
|
|
dst->nomatch = src->nomatch;
|
|
}
|