lkml.org 
[lkml]   [2018]   [Apr]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.16 188/196] rpc_pipefs: fix double-dput()
    Date
    4.16-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Al Viro <viro@zeniv.linux.org.uk>

    commit 4a3877c4cedd95543f8726b0a98743ed8db0c0fb upstream.

    if we ever hit rpc_gssd_dummy_depopulate() dentry passed to
    it has refcount equal to 1. __rpc_rmpipe() drops it and
    dput() done after that hits an already freed dentry.

    Cc: stable@kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    net/sunrpc/rpc_pipe.c | 1 +
    1 file changed, 1 insertion(+)

    --- a/net/sunrpc/rpc_pipe.c
    +++ b/net/sunrpc/rpc_pipe.c
    @@ -1375,6 +1375,7 @@ rpc_gssd_dummy_depopulate(struct dentry
    struct dentry *clnt_dir = pipe_dentry->d_parent;
    struct dentry *gssd_dir = clnt_dir->d_parent;

    + dget(pipe_dentry);
    __rpc_rmpipe(d_inode(clnt_dir), pipe_dentry);
    __rpc_depopulate(clnt_dir, gssd_dummy_info_file, 0, 1);
    __rpc_depopulate(gssd_dir, gssd_dummy_clnt_dir, 0, 1);

    \
     
     \ /
      Last update: 2018-04-22 17:45    [W:4.072 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site