• Mårten Lindahl's avatar
    ubifs: Fix memory leak in do_rename · 3a36d20e
    Mårten Lindahl authored
    If renaming a file in an encrypted directory, function
    fscrypt_setup_filename allocates memory for a file name. This name is
    never used, and before returning to the caller the memory for it is not
    freed.
    
    When running kmemleak on it we see that it is registered as a leak. The
    report below is triggered by a simple program 'rename' that renames a
    file in an encrypted directory:
    
      unreferenced object 0xffff888101502840 (size 32):
        comm "rename", pid 9404, jiffies 4302582475 (age 435.735s)
        backtrace:
          __kmem_cache_alloc_node
          __kmalloc
          fscrypt_setup_filename
          do_rename
          ubifs_rename
          vfs_rename
          do_renameat2
    
    To fix this we can remove the call to fscrypt_setup_filename as it's not
    needed.
    
    Fixes: 278d9a24 ("ubifs: Rename whiteout atomically")
    Reported-by: default avatarZhihao Cheng <chengzhihao1@huawei.com>
    Signed-off-by: default avatarMårten Lindahl <marten.lindahl@axis.com>
    Reviewed-by: default avatarZhihao Cheng <chengzhihao1@huawei.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    3a36d20e
dir.c 44.4 KB