diff -ur v2.4.27/linux/net/ipv4/netfilter/ip_nat_core.c linux/net/ipv4/netfilter/ip_nat_core.c --- v2.4.27/linux/net/ipv4/netfilter/ip_nat_core.c 2004-08-08 10:56:48.000000000 +0300 +++ linux/net/ipv4/netfilter/ip_nat_core.c 2004-11-13 17:09:23.284430360 +0200 @@ -762,7 +762,7 @@ struct sk_buff **pskb) { unsigned int i; - struct ip_nat_helper *helper; + struct ip_nat_helper *helper = NULL; enum ip_conntrack_dir dir = CTINFO2DIR(ctinfo); int is_tcp = (*pskb)->nh.iph->protocol == IPPROTO_TCP; @@ -797,9 +797,9 @@ &info->manips[i].manip, info->manips[i].maniptype, &(*pskb)->nfcache); + helper = info->helper; } } - helper = info->helper; READ_UNLOCK(&ip_nat_lock); if (helper) { diff -ur v2.4.27/linux/net/ipv4/netfilter/ip_nat_ftp.c linux/net/ipv4/netfilter/ip_nat_ftp.c --- v2.4.27/linux/net/ipv4/netfilter/ip_nat_ftp.c 2003-08-25 22:06:13.000000000 +0300 +++ linux/net/ipv4/netfilter/ip_nat_ftp.c 2004-11-13 17:09:23.285430208 +0200 @@ -44,6 +44,8 @@ IP_NF_ASSERT(master); IP_NF_ASSERT(!(info->initialized & (1<initialized & (1<master->help.exp_ftp_info;