[PATCH] ipt_XOR fails to compile in gcc4

Phil Oester kernel at linuxace.com
Tue Jan 11 01:36:32 CET 2005


As reported by Pawe³ Sikora, the attached fix is required by
GCC 4 due to elimination of lvalue in assignments.

Resolves bugzilla #264

Phil

-------------- next part --------------
diff -ru pom-orig/XOR/linux-2.6/net/ipv4/netfilter/ipt_XOR.c pom-new/XOR/linux-2.6/net/ipv4/netfilter/ipt_XOR.c
--- pom-orig/XOR/linux-2.6/net/ipv4/netfilter/ipt_XOR.c	2004-02-25 03:59:06.000000000 -0500
+++ pom-new/XOR/linux-2.6/net/ipv4/netfilter/ipt_XOR.c	2005-01-10 19:34:01.218767184 -0500
@@ -40,7 +40,7 @@
 		tcph = (struct tcphdr *) ((*pskb)->data + iph->ihl*4);
 		for (i=0, j=0; i<(ntohs(iph->tot_len) - iph->ihl*4 - tcph->doff*4); ) {
 			for (k=0; k<=info->block_size; k++) {
-				(char) (*pskb)->data[ iph->ihl*4 + tcph->doff*4 + i ] ^= 
+				(*pskb)->data[ iph->ihl*4 + tcph->doff*4 + i ] ^=
 						info->key[j];
 				i++;
 			}
@@ -52,7 +52,7 @@
 		udph = (struct udphdr *) ((*pskb)->data + iph->ihl*4);
 		for (i=0, j=0; i<(ntohs(udph->len)-8); ) {
 			for (k=0; k<=info->block_size; k++) {
-				(char) (*pskb)->data[ iph->ihl*4 + sizeof(struct udphdr) + i ] ^= 
+				(*pskb)->data[ iph->ihl*4 + sizeof(struct udphdr) + i ] ^= 
 						info->key[j];
 				i++;
 			}


More information about the netfilter-devel mailing list