lkml.org 
[lkml]   [2014]   [Feb]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.13 045/120] nfs4: fix discover_server_trunking use after free
    Date
    3.13-stable review patch.  If anyone has any objections, please let me know.

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

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

    commit abad2fa5ba67725a3f9c376c8cfe76fbe94a3041 upstream.

    If clp is new (cl_count = 1) and it matches another client in
    nfs4_discover_server_trunking, the nfs_put_client will free clp before
    ->cl_preserve_clid is set.

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

    ---
    fs/nfs/nfs4client.c | 10 ++++------
    1 file changed, 4 insertions(+), 6 deletions(-)

    --- a/fs/nfs/nfs4client.c
    +++ b/fs/nfs/nfs4client.c
    @@ -409,13 +409,11 @@ struct nfs_client *nfs4_init_client(stru
    error = nfs4_discover_server_trunking(clp, &old);
    if (error < 0)
    goto error;
    - nfs_put_client(clp);
    - if (clp != old) {
    - clp->cl_preserve_clid = true;
    - clp = old;
    - }

    - return clp;
    + if (clp != old)
    + clp->cl_preserve_clid = true;
    + nfs_put_client(clp);
    + return old;

    error:
    nfs_mark_client_ready(clp, error);



    \
     
     \ /
      Last update: 2014-02-13 08:41    [W:7.399 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site