From: Leon Romanovsky <[email protected]>

The call to get_task_name() allocates memory which is not freed
in case of skipping the object.

Fixes: 8ecac46a60ff ("rdma: Add QP resource tracking information")
Signed-off-by: Leon Romanovsky <[email protected]>
---
 rdma/res.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/rdma/res.c b/rdma/res.c
index 2a63e712..62f5c544 100644
--- a/rdma/res.c
+++ b/rdma/res.c
@@ -395,8 +395,10 @@ static int res_qp_parse_cb(const struct nlmsghdr *nlh, 
void *data)
                        comm = get_task_name(pid);
                }

-               if (rd_check_is_filtered(rd, "pid", pid))
+               if (rd_check_is_filtered(rd, "pid", pid)) {
+                       free(comm);
                        continue;
+               }

                if (nla_line[RDMA_NLDEV_ATTR_RES_KERN_NAME])
                        /* discard const from mnl_attr_get_str */
--
2.16.1

Reply via email to