[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