lkml.org 
[lkml]   [2021]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.12 645/700] configfs: fix memleak in configfs_release_bin_file
    Date
    From: Chung-Chiang Cheng <shepjeng@gmail.com>

    [ Upstream commit 3c252b087de08d3cb32468b54a158bd7ad0ae2f7 ]

    When reading binary attributes in progress, buffer->bin_buffer is setup in
    configfs_read_bin_file() but never freed.

    Fixes: 03607ace807b4 ("configfs: implement binary attributes")
    Signed-off-by: Chung-Chiang Cheng <cccheng@synology.com>
    [hch: move the vfree rather than duplicating it]
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/configfs/file.c | 10 +++++-----
    1 file changed, 5 insertions(+), 5 deletions(-)

    diff --git a/fs/configfs/file.c b/fs/configfs/file.c
    index da8351d1e455..4d0825213116 100644
    --- a/fs/configfs/file.c
    +++ b/fs/configfs/file.c
    @@ -482,13 +482,13 @@ static int configfs_release_bin_file(struct inode *inode, struct file *file)
    buffer->bin_buffer_size);
    }
    up_read(&frag->frag_sem);
    - /* vfree on NULL is safe */
    - vfree(buffer->bin_buffer);
    - buffer->bin_buffer = NULL;
    - buffer->bin_buffer_size = 0;
    - buffer->needs_read_fill = 1;
    }

    + vfree(buffer->bin_buffer);
    + buffer->bin_buffer = NULL;
    + buffer->bin_buffer_size = 0;
    + buffer->needs_read_fill = 1;
    +
    configfs_release(inode, file);
    return 0;
    }
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-12 10:10    [W:4.516 / U:0.416 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site