[netfilter-cvslog] r4396 - in trunk/patch-o-matic-ng/patchlets/set: linux/net/ipv4/netfilter linux-2.6/net/ipv4/netfilter

kadlec at netfilter.org kadlec at netfilter.org
Fri Oct 28 21:23:40 CEST 2005


Author: kadlec at netfilter.org
Date: 2005-10-28 21:23:36 +0200 (Fri, 28 Oct 2005)
New Revision: 4396

Modified:
   trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set.c
   trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set_iptree.c
   trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set.c
   trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set_iptree.c
Log:
Memory allocation fix in ip_set_iptree.c and two minor fixes.


Modified: trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set.c
===================================================================
--- trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set.c	2005-10-28 19:21:38 UTC (rev 4395)
+++ trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set.c	2005-10-28 19:23:36 UTC (rev 4396)
@@ -1913,10 +1913,7 @@
    	             		 && ip_set_list[index]
    	             ? ip_set_list[index]->name
    	             : ":all:", copylen);
-	if (res == 0)
-		res = copy_to_user(user, data, copylen);
-	else
-		copy_to_user(user, data, copylen);
+	res = copy_to_user(user, data, copylen);
     	
     done:
 	up(&ip_set_app_mutex);

Modified: trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set_iptree.c
===================================================================
--- trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set_iptree.c	2005-10-28 19:21:38 UTC (rev 4395)
+++ trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set_iptree.c	2005-10-28 19:23:36 UTC (rev 4396)
@@ -140,6 +140,9 @@
 	    && (!map->timeout || time_after(dtree->expires[d], jiffies)))
 	    	ret = -EEXIST;
 	dtree->expires[d] = map->timeout ? (timeout * HZ + jiffies) : 1;
+	/* Lottery */
+	if (dtree->expires[d] == 0)
+		dtree->expires[d] = 1;
 	DP("%u %lu", d, dtree->expires[d]);
 	return ret;
 }
@@ -162,7 +165,7 @@
 	return __addip(set, req->ip,
 		       req->timeout ? req->timeout : map->timeout,
 		       hash_ip,
-		       GFP_KERNEL);
+		       GFP_ATOMIC);
 }
 
 static int

Modified: trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set.c
===================================================================
--- trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set.c	2005-10-28 19:21:38 UTC (rev 4395)
+++ trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set.c	2005-10-28 19:23:36 UTC (rev 4396)
@@ -1900,10 +1900,7 @@
    	             		 && ip_set_list[index]
    	             ? ip_set_list[index]->name
    	             : ":all:", copylen);
-	if (res == 0)
-		res = copy_to_user(user, data, copylen);
-	else
-		copy_to_user(user, data, copylen);
+	res = copy_to_user(user, data, copylen);
     	
     done:
 	up(&ip_set_app_mutex);

Modified: trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set_iptree.c
===================================================================
--- trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set_iptree.c	2005-10-28 19:21:38 UTC (rev 4395)
+++ trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set_iptree.c	2005-10-28 19:23:36 UTC (rev 4396)
@@ -19,6 +19,11 @@
 #include <asm/bitops.h>
 #include <linux/spinlock.h>
 
+/* Backward compatibility */
+#ifndef __nocast
+#define __nocast
+#endif
+
 #include <linux/netfilter_ipv4/ip_set_iptree.h>
 
 /* Garbage collection interval in seconds: */
@@ -139,6 +144,9 @@
 	    && (!map->timeout || time_after(dtree->expires[d], jiffies)))
 	    	ret = -EEXIST;
 	dtree->expires[d] = map->timeout ? (timeout * HZ + jiffies) : 1;
+	/* Lottery */
+	if (dtree->expires[d] == 0)
+		dtree->expires[d] = 1;
 	DP("%u %lu", d, dtree->expires[d]);
 	return ret;
 }
@@ -161,7 +169,7 @@
 	return __addip(set, req->ip,
 		       req->timeout ? req->timeout : map->timeout,
 		       hash_ip,
-		       GFP_KERNEL);
+		       GFP_ATOMIC);
 }
 
 static int




More information about the netfilter-cvslog mailing list