lkml.org 
[lkml]   [2018]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC][PATCH 02/42] cxl_getfile(): fix double-iput() on alloc_file() failures
    Date
    From: Al Viro <viro@zeniv.linux.org.uk>

    Doing iput() after path_put() is wrong.

    Cc: stable@kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    ---
    drivers/misc/cxl/api.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c
    index 753b1a698fc4..6b16946f9b05 100644
    --- a/drivers/misc/cxl/api.c
    +++ b/drivers/misc/cxl/api.c
    @@ -103,15 +103,15 @@ static struct file *cxl_getfile(const char *name,
    d_instantiate(path.dentry, inode);

    file = alloc_file(&path, OPEN_FMODE(flags), fops);
    - if (IS_ERR(file))
    - goto err_dput;
    + if (IS_ERR(file)) {
    + path_put(&path);
    + goto err_fs;
    + }
    file->f_flags = flags & (O_ACCMODE | O_NONBLOCK);
    file->private_data = priv;

    return file;

    -err_dput:
    - path_put(&path);
    err_inode:
    iput(inode);
    err_fs:
    --
    2.11.0
    \
     
     \ /
      Last update: 2018-07-11 04:27    [W:3.059 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site