aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhengbin <[email protected]>2019-08-19 12:27:39 +0800
committerDoug Ledford <[email protected]>2019-08-20 13:44:45 -0400
commita7bfb93f0211b4a2f1ffeeb259ed6206bac30460 (patch)
treeb5a930880d54241b3e4a05bef6bb5f4f17d43b36
parent841b07f99a4766d66f50d8a2ab941bce94cd4e70 (diff)
RDMA/cma: fix null-ptr-deref Read in cma_cleanup
In cma_init, if cma_configfs_init fails, need to free the previously memory and return fail, otherwise will trigger null-ptr-deref Read in cma_cleanup. cma_cleanup cma_configfs_exit configfs_unregister_subsystem Fixes: 045959db65c6 ("IB/cma: Add configfs for rdma_cm") Reported-by: Hulk Robot <[email protected]> Signed-off-by: zhengbin <[email protected]> Reviewed-by: Parav Pandit <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Doug Ledford <[email protected]>
-rw-r--r--drivers/infiniband/core/cma.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 19f1730a4f24..a68d0ccf67a4 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -4724,10 +4724,14 @@ static int __init cma_init(void)
if (ret)
goto err;
- cma_configfs_init();
+ ret = cma_configfs_init();
+ if (ret)
+ goto err_ib;
return 0;
+err_ib:
+ ib_unregister_client(&cma_client);
err:
unregister_netdevice_notifier(&cma_nb);
ib_sa_unregister_client(&sa_client);