浏览代码

iser-target: Fix leak on failure in isert_conn_create_fastreg_pool

This patch fixes a memory leak for fr_desc upon failure of
isert_create_fr_desc() in isert_conn_create_fastreg_pool()
code.

As reported by Coverity 1166659:

*** CID 1166659:  Resource leak  (RESOURCE_LEAK)
/drivers/infiniband/ulp/isert/ib_isert.c: 470 in isert_conn_create_fastreg_pool()
464                      isert_conn, isert_conn->conn_fr_pool_size);
465
466             return 0;
467
468     err:
469             isert_conn_free_fastreg_pool(isert_conn);
>>>     CID 1166659:  Resource leak  (RESOURCE_LEAK)
>>>     Variable "fr_desc" going out of scope leaks the storage it points to.
470             return ret;
471     }
472
473     static int
474     isert_connect_request(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
475     {

Cc: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Nicholas Bellinger 11 年之前
父节点
当前提交
a80e21b3b2
共有 1 个文件被更改,包括 1 次插入0 次删除
  1. 1 0
      drivers/infiniband/ulp/isert/ib_isert.c

+ 1 - 0
drivers/infiniband/ulp/isert/ib_isert.c

@@ -453,6 +453,7 @@ isert_conn_create_fastreg_pool(struct isert_conn *isert_conn)
 		if (ret) {
 		if (ret) {
 			pr_err("Failed to create fastreg descriptor err=%d\n",
 			pr_err("Failed to create fastreg descriptor err=%d\n",
 			       ret);
 			       ret);
+			kfree(fr_desc);
 			goto err;
 			goto err;
 		}
 		}