[netfilter-cvslog] r3280 - trunk/patch-o-matic-ng/rpc/linux/net/ipv4/netfilter

gandalf at netfilter.org gandalf at netfilter.org
Thu Nov 11 22:32:22 CET 2004


Author: gandalf at netfilter.org
Date: 2004-11-11 22:32:21 +0100 (Thu, 11 Nov 2004)
New Revision: 3280

Modified:
   trunk/patch-o-matic-ng/rpc/linux/net/ipv4/netfilter/ip_conntrack_rpc_tcp.c
   trunk/patch-o-matic-ng/rpc/linux/net/ipv4/netfilter/ip_conntrack_rpc_udp.c
Log:
Patch by: Phil Oester <kernel at linuxace.com>

RSH helper doesn't properly handle name registration of multiple ports.
Patch below fixes.

This fixes 1/2 of bugzilla #90



Modified: trunk/patch-o-matic-ng/rpc/linux/net/ipv4/netfilter/ip_conntrack_rpc_tcp.c
===================================================================
--- trunk/patch-o-matic-ng/rpc/linux/net/ipv4/netfilter/ip_conntrack_rpc_tcp.c	2004-11-11 05:31:34 UTC (rev 3279)
+++ trunk/patch-o-matic-ng/rpc/linux/net/ipv4/netfilter/ip_conntrack_rpc_tcp.c	2004-11-11 21:32:21 UTC (rev 3280)
@@ -418,6 +418,7 @@
 
 
 static struct ip_conntrack_helper rpc_helpers[MAX_PORTS];
+static char rpc_names[MAX_PORTS][10];
 
 static void fini(void);
 
@@ -425,9 +426,8 @@
 static int __init init(void)
 {
 	int port, ret;
-	static char name[10];
+	char *tmpname;
 
-
 	/* If no port given, default to standard RPC port */
 	if (ports[0] == 0)
 		ports[0] = RPC_PORT;
@@ -435,12 +435,13 @@
 	for (port = 0; (port < MAX_PORTS) && ports[port]; port++) {
 		memset(&rpc_helpers[port], 0, sizeof(struct ip_conntrack_helper));
 
-                if (ports[port] == RPC_PORT)
-                        sprintf(name, "rpc");
-                else
-                        sprintf(name, "rpc-%d", port);
+		tmpname = &rpc_names[port][0];
+		if (ports[port] == RPC_PORT)
+			sprintf(tmpname, "rpc");
+		else
+			sprintf(tmpname, "rpc-%d", ports[port]);
+		rpc_helpers[port].name = tmpname;
 
-		rpc_helpers[port].name = name;
 		rpc_helpers[port].me = THIS_MODULE;
 		rpc_helpers[port].max_expected = 1;
 		rpc_helpers[port].flags = IP_CT_HELPER_F_REUSE_EXPECT;

Modified: trunk/patch-o-matic-ng/rpc/linux/net/ipv4/netfilter/ip_conntrack_rpc_udp.c
===================================================================
--- trunk/patch-o-matic-ng/rpc/linux/net/ipv4/netfilter/ip_conntrack_rpc_udp.c	2004-11-11 05:31:34 UTC (rev 3279)
+++ trunk/patch-o-matic-ng/rpc/linux/net/ipv4/netfilter/ip_conntrack_rpc_udp.c	2004-11-11 21:32:21 UTC (rev 3280)
@@ -413,6 +413,7 @@
 
 
 static struct ip_conntrack_helper rpc_helpers[MAX_PORTS];
+static char rpc_names[MAX_PORTS][10];
 
 static void fini(void);
 
@@ -420,9 +421,8 @@
 static int __init init(void)
 {
 	int port, ret;
-	static char name[10];
+	char *tmpname;
 
-
 	/* If no port given, default to standard RPC port */
 	if (ports[0] == 0)
 		ports[0] = RPC_PORT;
@@ -430,12 +430,13 @@
 	for (port = 0; (port < MAX_PORTS) && ports[port]; port++) {
 		memset(&rpc_helpers[port], 0, sizeof(struct ip_conntrack_helper));
 
-                if (ports[port] == RPC_PORT)
-                        sprintf(name, "rpc");
-                else
-                        sprintf(name, "rpc-%d", port);
+		tmpname = &rpc_names[port][0];
+		if (ports[port] == RPC_PORT)
+			sprintf(tmpname, "rpc");
+		else
+			sprintf(tmpname, "rpc-%d", ports[port]);
+		rpc_helpers[port].name = tmpname;
 
-		rpc_helpers[port].name = name;
 		rpc_helpers[port].me = THIS_MODULE;
 		rpc_helpers[port].max_expected = 1;
 		rpc_helpers[port].flags = IP_CT_HELPER_F_REUSE_EXPECT;




More information about the netfilter-cvslog mailing list