diff options
author | Chen Zhongjin <[email protected]> | 2022-11-01 17:37:22 +0800 |
---|---|---|
committer | Jakub Kicinski <[email protected]> | 2022-11-02 20:42:09 -0700 |
commit | 62ff373da2534534c55debe6c724c7fe14adb97f (patch) | |
tree | 2ffec044f3b984197b80af81cfaca4c67ff2aca3 /include/linux/workqueue_api.h | |
parent | 2ae34111fe4eebb69986f6490015b57c88804373 (diff) |
net/smc: Fix possible leaked pernet namespace in smc_init()
In smc_init(), register_pernet_subsys(&smc_net_stat_ops) is called
without any error handling.
If it fails, registering of &smc_net_ops won't be reverted.
And if smc_nl_init() fails, &smc_net_stat_ops itself won't be reverted.
This leaves wild ops in subsystem linkedlist and when another module
tries to call register_pernet_operations() it triggers page fault:
BUG: unable to handle page fault for address: fffffbfff81b964c
RIP: 0010:register_pernet_operations+0x1b9/0x5f0
Call Trace:
<TASK>
register_pernet_subsys+0x29/0x40
ebtables_init+0x58/0x1000 [ebtables]
...
Fixes: 194730a9beb5 ("net/smc: Make SMC statistics network namespace aware")
Signed-off-by: Chen Zhongjin <[email protected]>
Reviewed-by: Tony Lu <[email protected]>
Reviewed-by: Wenjia Zhang <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'include/linux/workqueue_api.h')
0 files changed, 0 insertions, 0 deletions