Message ID | 20240215203400.29976-1-kovalev@altlinux.org (mailing list archive) |
---|---|
State | Accepted |
Commit | def689fc26b9a9622d2e2cb0c4933dd3b1c8071c |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | devlink: fix possible use-after-free and memory leaks in devlink_init() | expand |
Hello: This patch was applied to netdev/net.git (main) by Paolo Abeni <pabeni@redhat.com>: On Thu, 15 Feb 2024 23:34:00 +0300 you wrote: > From: Vasiliy Kovalev <kovalev@altlinux.org> > > The pernet operations structure for the subsystem must be registered > before registering the generic netlink family. > > Make an unregister in case of unsuccessful registration. > > [...] Here is the summary with links: - devlink: fix possible use-after-free and memory leaks in devlink_init() https://git.kernel.org/netdev/net/c/def689fc26b9 You are awesome, thank you!
diff --git a/net/devlink/core.c b/net/devlink/core.c index 4275a2bc6d8e06..b3178512878d65 100644 --- a/net/devlink/core.c +++ b/net/devlink/core.c @@ -529,14 +529,20 @@ static int __init devlink_init(void) { int err; - err = genl_register_family(&devlink_nl_family); - if (err) - goto out; err = register_pernet_subsys(&devlink_pernet_ops); if (err) goto out; + err = genl_register_family(&devlink_nl_family); + if (err) + goto out_unreg_pernet_subsys; err = register_netdevice_notifier(&devlink_port_netdevice_nb); + if (!err) + return 0; + + genl_unregister_family(&devlink_nl_family); +out_unreg_pernet_subsys: + unregister_pernet_subsys(&devlink_pernet_ops); out: WARN_ON(err); return err;