NTB: ntb_tool: fix memory leak on 'buf' on error exit path
authorColin Ian King <colin.king@canonical.com>
Mon, 22 Jan 2018 09:38:57 +0000 (09:38 +0000)
committerJon Mason <jdmason@kudzu.us>
Mon, 29 Jan 2018 03:17:24 +0000 (22:17 -0500)
Currently there is a memory leak on buf when the call to ntb_mw_get_align
fails.  Add an exit err label and jump to this so that kfree on buf frees
the memory.

Detected by CoverityScan, CID#1464286 ("Resource leak")

Fixes: d637628ce00c ("NTB: ntb_tool: Add full multi-port NTB API support")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Acked-by: Serge Semin <fancer.lancer@gmail.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
drivers/ntb/test/ntb_tool.c

index 920fc9b..d592c0f 100644 (file)
@@ -659,7 +659,7 @@ static ssize_t tool_mw_trans_read(struct file *filep, char __user *ubuf,
        ret = ntb_mw_get_align(inmw->tc->ntb, inmw->pidx, inmw->widx,
                               &addr_align, &size_align, &size_max);
        if (ret)
-               return ret;
+               goto err;
 
        off += scnprintf(buf + off, buf_size - off,
                         "Inbound MW     \t%d\n",
@@ -694,6 +694,8 @@ static ssize_t tool_mw_trans_read(struct file *filep, char __user *ubuf,
                         &size_max);
 
        ret = simple_read_from_buffer(ubuf, size, offp, buf, off);
+
+err:
        kfree(buf);
 
        return ret;