From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DD4BFC6FD1D for ; Thu, 30 Mar 2023 14:19:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232302AbjC3OTB (ORCPT ); Thu, 30 Mar 2023 10:19:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42798 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232326AbjC3OSr (ORCPT ); Thu, 30 Mar 2023 10:18:47 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6D47BBDFD for ; Thu, 30 Mar 2023 07:18:18 -0700 (PDT) Received: from kwepemm600013.china.huawei.com (unknown [172.30.72.55]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4PnQS067PMzKxNw; Thu, 30 Mar 2023 22:15:28 +0800 (CST) Received: from [10.174.178.46] (10.174.178.46) by kwepemm600013.china.huawei.com (7.193.23.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Thu, 30 Mar 2023 22:17:52 +0800 Subject: Re: [PATCH] ubifs: Fix memory leak in do_rename To: =?UTF-8?Q?M=c3=a5rten_Lindahl?= , Richard Weinberger CC: , , References: <20230330-memleak_rename-fix-v1-1-99789e908fdf@axis.com> From: Zhihao Cheng Message-ID: Date: Thu, 30 Mar 2023 22:17:51 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <20230330-memleak_rename-fix-v1-1-99789e908fdf@axis.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.178.46] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm600013.china.huawei.com (7.193.23.68) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > 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. > > Reported-by: Zhihao Cheng > Signed-off-by: MÃ¥rten Lindahl > --- > fs/ubifs/dir.c | 6 ------ > 1 file changed, 6 deletions(-) > I'm okay with this modification. It would be better to add a fix tag. (Fixes: 278d9a243635f26 ("ubifs: Rename whiteout atomically")) Reviewed-by: Zhihao Cheng > diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c > index 0f29cf201136..4c2dda1346e7 100644 > --- a/fs/ubifs/dir.c > +++ b/fs/ubifs/dir.c > @@ -358,7 +358,6 @@ static struct inode *create_whiteout(struct inode *dir, struct dentry *dentry) > umode_t mode = S_IFCHR | WHITEOUT_MODE; > struct inode *inode; > struct ubifs_info *c = dir->i_sb->s_fs_info; > - struct fscrypt_name nm; > > /* > * Create an inode('nlink = 1') for whiteout without updating journal, > @@ -369,10 +368,6 @@ static struct inode *create_whiteout(struct inode *dir, struct dentry *dentry) > dbg_gen("dent '%pd', mode %#hx in dir ino %lu", > dentry, mode, dir->i_ino); > > - err = fscrypt_setup_filename(dir, &dentry->d_name, 0, &nm); > - if (err) > - return ERR_PTR(err); > - > inode = ubifs_new_inode(c, dir, mode, false); > if (IS_ERR(inode)) { > err = PTR_ERR(inode); > @@ -395,7 +390,6 @@ static struct inode *create_whiteout(struct inode *dir, struct dentry *dentry) > make_bad_inode(inode); > iput(inode); > out_free: > - fscrypt_free_filename(&nm); > ubifs_err(c, "cannot create whiteout file, error %d", err); > return ERR_PTR(err); > } > > --- > base-commit: c9c3395d5e3dcc6daee66c6908354d47bf98cb0c > change-id: 20230330-memleak_rename-fix-6f94a6f99350 > > Best regards, >