From 08024b7646f6f258edca250353d6b5a611f9466c Mon Sep 17 00:00:00 2001 From: Chris Wright Date: Wed, 29 Nov 2006 20:49:55 -0800 Subject: [PATCH] kick of 2.6.19 queue --- ...cket-length-correctly-for-allocation.patch | 57 +++++++++++++++++++ queue-2.6.19/series | 1 + 2 files changed, 58 insertions(+) create mode 100644 queue-2.6.19/ndisc-calculate-packet-length-correctly-for-allocation.patch create mode 100644 queue-2.6.19/series diff --git a/queue-2.6.19/ndisc-calculate-packet-length-correctly-for-allocation.patch b/queue-2.6.19/ndisc-calculate-packet-length-correctly-for-allocation.patch new file mode 100644 index 00000000000..8c13314a260 --- /dev/null +++ b/queue-2.6.19/ndisc-calculate-packet-length-correctly-for-allocation.patch @@ -0,0 +1,57 @@ +From stable-bounces@linux.kernel.org Wed Nov 29 20:26:45 2006 +Date: Wed, 29 Nov 2006 20:21:40 -0800 (PST) +Message-Id: <20061129.202140.23013142.davem@davemloft.net> +To: stable@kernel.org +From: David Miller +Subject: [IPV6] NDISC: Calculate packet length correctly for allocation. + +MAX_HEADER does not include the ipv6 header length in it, +so we need to add it in explicitly. + +Signed-off-by: David S. Miller +Signed-off-by: Chris Wright +--- + net/ipv6/ndisc.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +--- linux-2.6.19.orig/net/ipv6/ndisc.c ++++ linux-2.6.19/net/ipv6/ndisc.c +@@ -441,7 +441,8 @@ static void ndisc_send_na(struct net_dev + struct sk_buff *skb; + int err; + +- len = sizeof(struct icmp6hdr) + sizeof(struct in6_addr); ++ len = sizeof(struct ipv6hdr) + sizeof(struct icmp6hdr) + ++ sizeof(struct in6_addr); + + /* for anycast or proxy, solicited_addr != src_addr */ + ifp = ipv6_get_ifaddr(solicited_addr, dev, 1); +@@ -556,7 +557,8 @@ void ndisc_send_ns(struct net_device *de + if (err < 0) + return; + +- len = sizeof(struct icmp6hdr) + sizeof(struct in6_addr); ++ len = sizeof(struct ipv6hdr) + sizeof(struct icmp6hdr) + ++ sizeof(struct in6_addr); + send_llinfo = dev->addr_len && !ipv6_addr_any(saddr); + if (send_llinfo) + len += ndisc_opt_addr_space(dev); +@@ -632,7 +634,7 @@ void ndisc_send_rs(struct net_device *de + if (err < 0) + return; + +- len = sizeof(struct icmp6hdr); ++ len = sizeof(struct ipv6hdr) + sizeof(struct icmp6hdr); + if (dev->addr_len) + len += ndisc_opt_addr_space(dev); + +@@ -1381,7 +1383,8 @@ void ndisc_send_redirect(struct sk_buff + struct in6_addr *target) + { + struct sock *sk = ndisc_socket->sk; +- int len = sizeof(struct icmp6hdr) + 2 * sizeof(struct in6_addr); ++ int len = sizeof(struct ipv6hdr) + sizeof(struct icmp6hdr) + ++ 2 * sizeof(struct in6_addr); + struct sk_buff *buff; + struct icmp6hdr *icmph; + struct in6_addr saddr_buf; diff --git a/queue-2.6.19/series b/queue-2.6.19/series new file mode 100644 index 00000000000..d38897d50b6 --- /dev/null +++ b/queue-2.6.19/series @@ -0,0 +1 @@ +ndisc-calculate-packet-length-correctly-for-allocation.patch -- 2.47.3