On Sat, 7 Jun 2008, Patrick McHardy wrote:
<CUT>
struct hlist_head *nf_ct_alloc_hashtable(unsigned int *sizep, int
*vmalloced)
@@ -1165,6 +1174,10 @@ int __init nf_conntrack_init(void)
if (ret < 0)
goto out_fini_expect;
+ ret = nf_conntrack_acct_init();
+ if (ret < 0)
+ goto out_fini_acct;
+
/* For use by REJECT target */
rcu_assign_pointer(ip_ct_attach, nf_conntrack_attach);
rcu_assign_pointer(nf_ct_destroy, destroy_conntrack);
@@ -1177,6 +1190,7 @@ int __init nf_conntrack_init(void)
return ret;
+out_fini_acct:
nf_conntrack_helper_fini(); ?
Hm... "helper"? You mean "acct"?
No, I mean helper. If acct initialization fails, the helper
initialization was the last thing that succeeded and you need
to properly clean it up again.
Ack.
Best regards,
Krzysztof Olędzki