lkml.org 
[lkml]   [2012]   [Feb]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 17/72] NFSv4: fix server_scope memory leak
    3.2-stable review patch.  If anyone has any objections, please let me know.

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

    From: Weston Andros Adamson <dros@netapp.com>

    commit abe9a6d57b4544ac208401f9c0a4262814db2be4 upstream.

    server_scope would never be freed if nfs4_check_cl_exchange_flags() returned
    non-zero

    Signed-off-by: Weston Andros Adamson <dros@netapp.com>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    fs/nfs/nfs4proc.c | 15 +++++++++------
    1 file changed, 9 insertions(+), 6 deletions(-)

    --- a/fs/nfs/nfs4proc.c
    +++ b/fs/nfs/nfs4proc.c
    @@ -4876,8 +4876,10 @@ int nfs4_proc_exchange_id(struct nfs_cli
    clp->cl_rpcclient->cl_auth->au_flavor);

    res.server_scope = kzalloc(sizeof(struct server_scope), GFP_KERNEL);
    - if (unlikely(!res.server_scope))
    - return -ENOMEM;
    + if (unlikely(!res.server_scope)) {
    + status = -ENOMEM;
    + goto out;
    + }

    status = rpc_call_sync(clp->cl_rpcclient, &msg, RPC_TASK_TIMEOUT);
    if (!status)
    @@ -4894,12 +4896,13 @@ int nfs4_proc_exchange_id(struct nfs_cli
    clp->server_scope = NULL;
    }

    - if (!clp->server_scope)
    + if (!clp->server_scope) {
    clp->server_scope = res.server_scope;
    - else
    - kfree(res.server_scope);
    + goto out;
    + }
    }
    -
    + kfree(res.server_scope);
    +out:
    dprintk("<-- %s status= %d\n", __func__, status);
    return status;
    }



    \
     
     \ /
      Last update: 2012-02-28 02:11    [W:0.023 / U:90.528 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site