Skip to contentSkip to conversation

: Fix IP/TCP option logging

PATCH In review Patrick McHardy 1 participant 1 message Mar 4, 2005

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 8/8 : Fix IP/TCP option logging

# This is a BitKeeper generated diff -Nru style patch. #
# ChangeSet
# 2005/03/04 11:36:23+01:00 [email protected]
# [NETFILTER]: Fix IP/TCP option logging
#
# Signed-off-by: Patrick McHardy <[email protected]>
#
# net/ipv4/netfilter/ipt_LOG.c
# 2005/03/04 11:35:42+01:00 [email protected] +4 -3
# [NETFILTER]: Fix IP/TCP option logging
#
# Signed-off-by: Patrick McHardy <[email protected]>
#

net/ipv4/netfilter/ipt_LOG.c +4 -3
diff -Nru a/net/ipv4/netfilter/ipt_LOG.c b/net/ipv4/netfilter/ipt_LOG.c
@@ -67,8 +67,8 @@
 		printk("FRAG:%u ", ntohs(iph->frag_off) & IP_OFFSET);
 
 	if ((info->logflags & IPT_LOG_IPOPT)
-	    && iph->ihl * 4 != sizeof(struct iphdr)
-	    && iph->ihl * 4 >= datalen) {
+	    && iph->ihl * 4 > sizeof(struct iphdr)
+	    && iph->ihl * 4 <= len) {
 		unsigned int i;
 
 		/* Max length: 127 "OPT (" 15*4*2chars ") " */
@@ -126,7 +126,8 @@
 		printk("URGP=%u ", ntohs(tcph->urg_ptr));
 
 		if ((info->logflags & IPT_LOG_TCPOPT)
-		    && tcph->doff * 4 != sizeof(struct tcphdr)) {
+		    && tcph->doff * 4 > sizeof(struct tcphdr)
+		    && tcph->doff * 4 <= datalen) {
 			unsigned int i;
 
 			/* Max length: 127 "OPT (" 15*4*2chars ") " */