mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 00:04:15 +08:00
netfilter: nf_tables: check if bind callback fails and unbind if hook registration fails
Undo the callback binding before unregistering the existing hooks. This
should also check for error of the bind setup call.
Fixes: c29f74e0df
("netfilter: nf_flow_table: hardware offload support")
Signed-off-by: wenxu <wenxu@ucloud.cn>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
63b48c73ff
commit
d7c03a9f5c
@ -6006,12 +6006,20 @@ static int nft_register_flowtable_net_hooks(struct net *net,
|
||||
}
|
||||
}
|
||||
|
||||
flowtable->data.type->setup(&flowtable->data, hook->ops.dev,
|
||||
FLOW_BLOCK_BIND);
|
||||
err = nf_register_net_hook(net, &hook->ops);
|
||||
err = flowtable->data.type->setup(&flowtable->data,
|
||||
hook->ops.dev,
|
||||
FLOW_BLOCK_BIND);
|
||||
if (err < 0)
|
||||
goto err_unregister_net_hooks;
|
||||
|
||||
err = nf_register_net_hook(net, &hook->ops);
|
||||
if (err < 0) {
|
||||
flowtable->data.type->setup(&flowtable->data,
|
||||
hook->ops.dev,
|
||||
FLOW_BLOCK_UNBIND);
|
||||
goto err_unregister_net_hooks;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user