lkml.org 
[lkml]   [2019]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 45/57] infiniband: hfi1: fix a memory leak bug
    Date
    [ Upstream commit b08afa064c320e5d85cdc27228426b696c4c8dae ]

    In fault_opcodes_read(), 'data' is not deallocated if debugfs_file_get()
    fails, leading to a memory leak. To fix this bug, introduce the 'free_data'
    label to free 'data' before returning the error.

    Signed-off-by: Wenwen Wang <wenwen@cs.uga.edu>
    Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
    Acked-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Link: https://lore.kernel.org/r/1566156571-4335-1-git-send-email-wenwen@cs.uga.edu
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/infiniband/hw/hfi1/fault.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/infiniband/hw/hfi1/fault.c b/drivers/infiniband/hw/hfi1/fault.c
    index 7eaff4dcbfd77..72ca0dc5f3b59 100644
    --- a/drivers/infiniband/hw/hfi1/fault.c
    +++ b/drivers/infiniband/hw/hfi1/fault.c
    @@ -214,7 +214,7 @@ static ssize_t fault_opcodes_read(struct file *file, char __user *buf,
    return -ENOMEM;
    ret = debugfs_file_get(file->f_path.dentry);
    if (unlikely(ret))
    - return ret;
    + goto free_data;
    bit = find_first_bit(fault->opcodes, bitsize);
    while (bit < bitsize) {
    zero = find_next_zero_bit(fault->opcodes, bitsize, bit);
    @@ -232,6 +232,7 @@ static ssize_t fault_opcodes_read(struct file *file, char __user *buf,
    data[size - 1] = '\n';
    data[size] = '\0';
    ret = simple_read_from_buffer(buf, len, pos, data, size);
    +free_data:
    kfree(data);
    return ret;
    }
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-09-08 14:57    [W:4.027 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site