mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
netfilter: bridge: eb_tables: close module init race
sashiko reports for unrelated patch:
Does the core ebtables initialization in ebtables.c suffer from a similar race?
Once nf_register_sockopt() completes, the sockopts are exposed globally.
sockopt has to be registered last, just like in ip/ip6/arptables.
Fixes: 5b53951cfc ("netfilter: ebtables: use net_generic infra")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
16bc4b6686
commit
27414ff1b2
|
|
@ -2583,19 +2583,20 @@ static int __init ebtables_init(void)
|
|||
{
|
||||
int ret;
|
||||
|
||||
ret = xt_register_target(&ebt_standard_target);
|
||||
ret = register_pernet_subsys(&ebt_net_ops);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
ret = nf_register_sockopt(&ebt_sockopts);
|
||||
|
||||
ret = xt_register_target(&ebt_standard_target);
|
||||
if (ret < 0) {
|
||||
xt_unregister_target(&ebt_standard_target);
|
||||
unregister_pernet_subsys(&ebt_net_ops);
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = register_pernet_subsys(&ebt_net_ops);
|
||||
ret = nf_register_sockopt(&ebt_sockopts);
|
||||
if (ret < 0) {
|
||||
nf_unregister_sockopt(&ebt_sockopts);
|
||||
xt_unregister_target(&ebt_standard_target);
|
||||
unregister_pernet_subsys(&ebt_net_ops);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user