mctp: Fix an error handling path in mctp_init()

If mctp_neigh_init() return error, the routes resources should
be released in the error handling path. Otherwise some resources
leak.

Fixes: 4d8b931928 ("mctp: Add neighbour implementation")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Acked-by: Matt Johnston <matt@codeconstruct.com.au>
Link: https://lore.kernel.org/r/20221108095517.620115-1-weiyongjun@huaweicloud.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Wei Yongjun 2022-11-08 09:55:17 +00:00 committed by Jakub Kicinski
parent dcea1a8107
commit d4072058af
2 changed files with 4 additions and 2 deletions

View File

@ -665,12 +665,14 @@ static __init int mctp_init(void)
rc = mctp_neigh_init(); rc = mctp_neigh_init();
if (rc) if (rc)
goto err_unreg_proto; goto err_unreg_routes;
mctp_device_init(); mctp_device_init();
return 0; return 0;
err_unreg_routes:
mctp_routes_exit();
err_unreg_proto: err_unreg_proto:
proto_unregister(&mctp_proto); proto_unregister(&mctp_proto);
err_unreg_sock: err_unreg_sock:

View File

@ -1400,7 +1400,7 @@ int __init mctp_routes_init(void)
return register_pernet_subsys(&mctp_net_ops); return register_pernet_subsys(&mctp_net_ops);
} }
void __exit mctp_routes_exit(void) void mctp_routes_exit(void)
{ {
unregister_pernet_subsys(&mctp_net_ops); unregister_pernet_subsys(&mctp_net_ops);
rtnl_unregister(PF_MCTP, RTM_DELROUTE); rtnl_unregister(PF_MCTP, RTM_DELROUTE);