From d63e4b43fa595489dba6a438e5272fd7807bcd2d Mon Sep 17 00:00:00 2001 From: "Yuriy M. Kaminskiy" Date: Thu, 31 Mar 2016 03:47:53 +1300 Subject: [PATCH] pinger: Fix buffer overflow in Icmp6::Recv --- src/icmp/Icmp6.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/icmp/Icmp6.cc b/src/icmp/Icmp6.cc index 13073b53d9..79aa8cfa82 100644 --- a/src/icmp/Icmp6.cc +++ b/src/icmp/Icmp6.cc @@ -278,7 +278,7 @@ Icmp6::Recv(void) ip = (struct ip6_hdr *) pkt; - pkt += sizeof(ip6_hdr); + NP: echo size needs to +sizeof(ip6_hdr); debugs(42,0, HERE << "ip6_nxt=" << ip->ip6_nxt << ", ip6_plen=" << ip->ip6_plen << @@ -289,7 +289,6 @@ Icmp6::Recv(void) */ icmp6header = (struct icmp6_hdr *) pkt; - pkt += sizeof(icmp6_hdr); if (icmp6header->icmp6_type != ICMP6_ECHO_REPLY) { @@ -312,7 +311,7 @@ Icmp6::Recv(void) return; } - echo = (icmpEchoData *) pkt; + echo = (icmpEchoData *) (pkt + sizeof(icmp6_hdr)); preply.opcode = echo->opcode; -- 2.47.2