lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 12 Jan 2007 13:33:09 +0000
From:	Frederik Deweerdt <deweerdt@...e.fr>
To:	Andrew Morton <akpm@...l.org>
Cc:	linux-kernel@...r.kernel.org, davem@...emloft.net
Subject: [-mm patch] remove tcp header from tcp_v4_check

On Thu, Jan 11, 2007 at 10:26:27PM -0800, Andrew Morton wrote:
> 
>   ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc4-mm1/
> 
Hi,

The tcphdr struct passed to tcp_v4_check is not used, the following
patch removes it from the parameter list.
(This adds the netfilter modifications missing in the patch I sent
for rc3-mm1)

Regards,
Frederik 


Index: 2.6.20-rc4-mm1/include/net/tcp.h
===================================================================
--- 2.6.20-rc4-mm1.orig/include/net/tcp.h	2007-01-12 11:19:16.000000000 +0100
+++ 2.6.20-rc4-mm1/include/net/tcp.h	2007-01-12 11:21:43.000000000 +0100
@@ -802,9 +802,8 @@
 /*
  * Calculate(/check) TCP checksum
  */
-static inline __sum16 tcp_v4_check(struct tcphdr *th, int len,
-			       __be32 saddr, __be32 daddr,
-			       __wsum base)
+static inline __sum16 tcp_v4_check(int len, __be32 saddr,
+				   __be32 daddr, __wsum base)
 {
 	return csum_tcpudp_magic(saddr,daddr,len,IPPROTO_TCP,base);
 }
Index: 2.6.20-rc4-mm1/net/ipv4/netfilter/ipt_REJECT.c
===================================================================
--- 2.6.20-rc4-mm1.orig/net/ipv4/netfilter/ipt_REJECT.c	2007-01-12 11:19:16.000000000 +0100
+++ 2.6.20-rc4-mm1/net/ipv4/netfilter/ipt_REJECT.c	2007-01-12 11:21:43.000000000 +0100
@@ -116,11 +116,11 @@
 
 	/* Adjust TCP checksum */
 	tcph->check = 0;
-	tcph->check = tcp_v4_check(tcph, sizeof(struct tcphdr),
+	tcph->check = tcp_v4_check(sizeof(struct tcphdr),
 				   nskb->nh.iph->saddr,
 				   nskb->nh.iph->daddr,
 				   csum_partial((char *)tcph,
-						sizeof(struct tcphdr), 0));
+				   sizeof(struct tcphdr), 0));
 
 	/* Set DF, id = 0 */
 	nskb->nh.iph->frag_off = htons(IP_DF);
Index: 2.6.20-rc4-mm1/net/ipv4/tcp_ipv4.c
===================================================================
--- 2.6.20-rc4-mm1.orig/net/ipv4/tcp_ipv4.c	2007-01-12 11:19:16.000000000 +0100
+++ 2.6.20-rc4-mm1/net/ipv4/tcp_ipv4.c	2007-01-12 11:21:43.000000000 +0100
@@ -502,11 +502,11 @@
 	struct tcphdr *th = skb->h.th;
 
 	if (skb->ip_summed == CHECKSUM_PARTIAL) {
-		th->check = ~tcp_v4_check(th, len,
-					  inet->saddr, inet->daddr, 0);
+		th->check = ~tcp_v4_check(len, inet->saddr,
+					  inet->daddr, 0);
 		skb->csum_offset = offsetof(struct tcphdr, check);
 	} else {
-		th->check = tcp_v4_check(th, len, inet->saddr, inet->daddr,
+		th->check = tcp_v4_check(len, inet->saddr, inet->daddr,
 					 csum_partial((char *)th,
 						      th->doff << 2,
 						      skb->csum));
@@ -525,7 +525,7 @@
 	th = skb->h.th;
 
 	th->check = 0;
-	th->check = ~tcp_v4_check(th, skb->len, iph->saddr, iph->daddr, 0);
+	th->check = ~tcp_v4_check(skb->len, iph->saddr, iph->daddr, 0);
 	skb->csum_offset = offsetof(struct tcphdr, check);
 	skb->ip_summed = CHECKSUM_PARTIAL;
 	return 0;
@@ -747,7 +747,7 @@
 	if (skb) {
 		struct tcphdr *th = skb->h.th;
 
-		th->check = tcp_v4_check(th, skb->len,
+		th->check = tcp_v4_check(skb->len,
 					 ireq->loc_addr,
 					 ireq->rmt_addr,
 					 csum_partial((char *)th, skb->len,
@@ -1514,7 +1514,7 @@
 static __sum16 tcp_v4_checksum_init(struct sk_buff *skb)
 {
 	if (skb->ip_summed == CHECKSUM_COMPLETE) {
-		if (!tcp_v4_check(skb->h.th, skb->len, skb->nh.iph->saddr,
+		if (!tcp_v4_check(skb->len, skb->nh.iph->saddr,
 				  skb->nh.iph->daddr, skb->csum)) {
 			skb->ip_summed = CHECKSUM_UNNECESSARY;
 			return 0;
Index: 2.6.20-rc4-mm1/net/ipv4/netfilter/ip_nat_helper.c
===================================================================
--- 2.6.20-rc4-mm1.orig/net/ipv4/netfilter/ip_nat_helper.c	2007-01-12 11:19:56.000000000 +0100
+++ 2.6.20-rc4-mm1/net/ipv4/netfilter/ip_nat_helper.c	2007-01-12 11:21:43.000000000 +0100
@@ -183,7 +183,7 @@
 	datalen = (*pskb)->len - iph->ihl*4;
 	if ((*pskb)->ip_summed != CHECKSUM_PARTIAL) {
 		tcph->check = 0;
-		tcph->check = tcp_v4_check(tcph, datalen,
+		tcph->check = tcp_v4_check(datalen,
 					   iph->saddr, iph->daddr,
 					   csum_partial((char *)tcph,
 					   		datalen, 0));
Index: 2.6.20-rc4-mm1/net/ipv4/netfilter/nf_nat_helper.c
===================================================================
--- 2.6.20-rc4-mm1.orig/net/ipv4/netfilter/nf_nat_helper.c	2007-01-12 11:20:50.000000000 +0100
+++ 2.6.20-rc4-mm1/net/ipv4/netfilter/nf_nat_helper.c	2007-01-12 11:21:43.000000000 +0100
@@ -176,7 +176,7 @@
 	datalen = (*pskb)->len - iph->ihl*4;
 	if ((*pskb)->ip_summed != CHECKSUM_PARTIAL) {
 		tcph->check = 0;
-		tcph->check = tcp_v4_check(tcph, datalen,
+		tcph->check = tcp_v4_check(datalen,
 					   iph->saddr, iph->daddr,
 					   csum_partial((char *)tcph,
 					   		datalen, 0));
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ