lkml.org 
[lkml]   [2022]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 6.0 221/862] nfsd: Fix a memory leak in an error handling path
    Date
    From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

    [ Upstream commit fd1ef88049de09bc70d60b549992524cfc0e66ff ]

    If this memdup_user() call fails, the memory allocated in a previous call
    a few lines above should be freed. Otherwise it leaks.

    Fixes: 6ee95d1c8991 ("nfsd: add support for upcall version 2")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Reviewed-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/nfsd/nfs4recover.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
    index c634483d85d2..8f24485e0f04 100644
    --- a/fs/nfsd/nfs4recover.c
    +++ b/fs/nfsd/nfs4recover.c
    @@ -815,8 +815,10 @@ __cld_pipe_inprogress_downcall(const struct cld_msg_v2 __user *cmsg,
    princhash.data = memdup_user(
    &ci->cc_princhash.cp_data,
    princhashlen);
    - if (IS_ERR_OR_NULL(princhash.data))
    + if (IS_ERR_OR_NULL(princhash.data)) {
    + kfree(name.data);
    return -EFAULT;
    + }
    princhash.len = princhashlen;
    } else
    princhash.len = 0;
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-10-19 11:08    [W:2.462 / U:0.108 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site