dccp: Add check for truncated ICMPv6 DCCP error packets

Previous thread: dccp: Add check for sequence number in ICMPv6 message by Linux Kernel Mailing List on Monday, July 28, 2008 - 10:00 am. (1 message)

Next thread: dccp: Fix incorrect length check for ICMPv4 packets by Linux Kernel Mailing List on Monday, July 28, 2008 - 10:00 am. (1 message)
From: Linux Kernel Mailing List
Date: Monday, July 28, 2008 - 10:00 am

Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=860239...
Commit:     860239c56bbc7c830bdbcec93b140f22a5a5219b
Parent:     18e1d836002ad970f42736bad09b7be9cfe99545
Author:     Wei Yongjun <yjwei@cn.fujitsu.com>
AuthorDate: Sat Jul 26 11:59:11 2008 +0100
Committer:  Gerrit Renker <gerrit@erg.abdn.ac.uk>
CommitDate: Sat Jul 26 11:59:11 2008 +0100

    dccp: Add check for truncated ICMPv6 DCCP error packets
    
    This patch adds a minimum-length check for ICMPv6 packets, as per the previous
    patch for ICMPv4 payloads.
    
    Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
    Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
---
 net/dccp/ipv6.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c
index 25826b1..5e1ee0d 100644
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -96,6 +96,12 @@ static void dccp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
 	__u64 seq;
 	struct net *net = dev_net(skb->dev);
 
+	if (skb->len < offset + sizeof(*dh) ||
+	    skb->len < offset + __dccp_basic_hdr_len(dh)) {
+		ICMP6_INC_STATS_BH(__in6_dev_get(skb->dev), ICMP6_MIB_INERRORS);
+		return;
+	}
+
 	sk = inet6_lookup(net, &dccp_hashinfo,
 			&hdr->daddr, dh->dccph_dport,
 			&hdr->saddr, dh->dccph_sport, inet6_iif(skb));
--

Previous thread: dccp: Add check for sequence number in ICMPv6 message by Linux Kernel Mailing List on Monday, July 28, 2008 - 10:00 am. (1 message)

Next thread: dccp: Fix incorrect length check for ICMPv4 packets by Linux Kernel Mailing List on Monday, July 28, 2008 - 10:00 am. (1 message)