lkml.org 
[lkml]   [2017]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 108/212] NFSv4: Fix memory and state leak in _nfs4_open_and_get_state
    3.16.44-rc1 review patch.  If anyone has any objections, please let me know.

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

    From: Trond Myklebust <trond.myklebust@primarydata.com>

    commit a974deee477af89411e0f80456bfb344ac433c98 upstream.

    If we exit because the file access check failed, we currently
    leak the struct nfs4_state. We need to attach it to the
    open context before returning.

    Fixes: 3efb9722475e ("NFSv4: Refactor _nfs4_open_and_get_state..")
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    [bwh: Backported to 3.16: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    fs/nfs/nfs4proc.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/fs/nfs/nfs4proc.c
    +++ b/fs/nfs/nfs4proc.c
    @@ -2233,6 +2233,7 @@ static int _nfs4_open_and_get_state(stru
    ret = PTR_ERR(state);
    if (IS_ERR(state))
    goto out;
    + ctx->state = state;
    if (server->caps & NFS_CAP_POSIX_LOCK)
    set_bit(NFS_STATE_POSIX_LOCKS, &state->flags);

    @@ -2255,7 +2256,6 @@ static int _nfs4_open_and_get_state(stru
    if (ret != 0)
    goto out;

    - ctx->state = state;
    if (dentry->d_inode == state->inode) {
    nfs_inode_attach_open_context(ctx);
    if (read_seqcount_retry(&sp->so_reclaim_seqcount, seq))
    \
     
     \ /
      Last update: 2017-06-01 18:18    [W:2.143 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site