rpc helper handling of ip_conntrack_helper->name
PATCH 1/1 rpc helper handling of ip_conntrack_helper->name
RPC helper doesn't properly handle name registration of multiple ports. Patch below fixes.
This fixes 1/2 of bugzilla #90
Phil
rpc/linux/net/ipv4/netfilter/ip_conntrack_rpc_tcp.c +8 -7
@@ -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,8 +426,7 @@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 )
@@ -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 ;
rpc/linux/net/ipv4/netfilter/ip_conntrack_rpc_udp.c +8 -7
@@ -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,8 +421,7 @@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 )
@@ -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 ;