Description: fix denial of service via pinger and ICMPv6 packet
Origin: upstream, http://www.squid-cache.org/Versions/v3/3.3/changesets/squid-3.3-12694.patch
BUg-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=819783

Index: squid3-3.3.8/src/icmp/Icmp6.cc
===================================================================
--- squid3-3.3.8.orig/src/icmp/Icmp6.cc	2016-06-07 07:26:45.000000000 -0400
+++ squid3-3.3.8/src/icmp/Icmp6.cc	2016-06-07 10:00:18.537964047 -0400
@@ -279,7 +279,7 @@
     #define ip6_hops	// HOPS!!!  (can it be true??)
 
         ip = (struct ip6_hdr *) pkt;
-        pkt += sizeof(ip6_hdr);
+        NP: echo size needs to +sizeof(ip6_hdr);
 
     debugs(42, DBG_CRITICAL, HERE << "ip6_nxt=" << ip->ip6_nxt <<
     		", ip6_plen=" << ip->ip6_plen <<
@@ -290,7 +290,6 @@
     */
 
     icmp6header = (struct icmp6_hdr *) pkt;
-    pkt += sizeof(icmp6_hdr);
 
     if (icmp6header->icmp6_type != ICMP6_ECHO_REPLY) {
 
@@ -316,7 +315,7 @@
         return;
     }
 
-    echo = (icmpEchoData *) pkt;
+    echo = (icmpEchoData *) (pkt + sizeof(icmp6_hdr));
 
     preply.opcode = echo->opcode;
 
