diff -Nru --exclude-from /space/home/laforge/scripts/dontdiff --exclude .depend --exclude '*.o' --exclude '*.ko' --exclude '*.ver' --exclude '.*.flags' --exclude '*.orig' --exclude '*.rej' --exclude '*.cmd' --exclude '*.mod.c' --exclude '*~' linux-2.4.24/net/ipv4/netfilter/ipt_conntrack.c linux-2.4.24-usecount/net/ipv4/netfilter/ipt_conntrack.c --- linux-2.4.24/net/ipv4/netfilter/ipt_conntrack.c 2003-06-13 10:51:39.000000000 -0400 +++ linux-2.4.24-usecount/net/ipv4/netfilter/ipt_conntrack.c 2004-01-21 08:50:59.232369344 -0500 @@ -109,10 +109,15 @@ static int __init init(void) { + int ret; + /* NULL if ip_conntrack not a module */ if (ip_conntrack_module) __MOD_INC_USE_COUNT(ip_conntrack_module); - return ipt_register_match(&conntrack_match); + ret = ipt_register_match(&conntrack_match); + if (ret) + __MOD_DEC_USE_COUNT(ip_conntrack_module); + return ret; } static void __exit fini(void) diff -Nru --exclude-from /space/home/laforge/scripts/dontdiff --exclude .depend --exclude '*.o' --exclude '*.ko' --exclude '*.ver' --exclude '.*.flags' --exclude '*.orig' --exclude '*.rej' --exclude '*.cmd' --exclude '*.mod.c' --exclude '*~' linux-2.4.24/net/ipv4/netfilter/ipt_state.c linux-2.4.24-usecount/net/ipv4/netfilter/ipt_state.c --- linux-2.4.24/net/ipv4/netfilter/ipt_state.c 2001-09-30 15:26:08.000000000 -0400 +++ linux-2.4.24-usecount/net/ipv4/netfilter/ipt_state.c 2004-01-21 08:49:36.054014376 -0500 @@ -46,10 +46,15 @@ static int __init init(void) { + int ret; + /* NULL if ip_conntrack not a module */ if (ip_conntrack_module) __MOD_INC_USE_COUNT(ip_conntrack_module); - return ipt_register_match(&state_match); + ret = ipt_register_match(&state_match); + if (ret) + __MOD_DEC_USE_COUNT(ip_conntrack_module); + return ret; } static void __exit fini(void)