lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 7 Oct 2021 16:06:40 +0200 From: Jan Kara <jack@...e.cz> To: Chenyuan Mi <cymi20@...an.edu.cn> Cc: yuanxzhang@...an.edu.cn, Xiyu Yang <xiyuyang19@...an.edu.cn>, Xin Tan <tanxin.ctf@...il.com>, Theodore Ts'o <tytso@....edu>, Andreas Dilger <adilger.kernel@...ger.ca>, linux-ext4@...r.kernel.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH] ext4: Fix handle refcount leak in ext4_write_begin() On Wed 08-09-21 15:06:40, Chenyuan Mi wrote: > The reference counting issue happens when ret is zero, > the function forgets to decrease the refcount of handle > increased by ext4_journal_start(). > > Fix this issue by using ext4_journal_stop() to decrease > the refcount of handle. > > Signed-off-by: Chenyuan Mi <cymi20@...an.edu.cn> > Signed-off-by: Xiyu Yang <xiyuyang19@...an.edu.cn> > Signed-off-by: Xin Tan <tanxin.ctf@...il.com> Yes, but that is deliberate. We want to keep the transaction running until the write is done - i.e., until ->write_end() callback where we call ext4_journal_stop(). As a side note, please test your patches. You clearly didn't test this patch because if you did, you would notice that your patch breaks writing to ext4. Honza > --- > fs/ext4/inode.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index d18852d6029c..90c57d8e3de1 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -1249,6 +1249,7 @@ static int ext4_write_begin(struct file *file, struct address_space *mapping, > put_page(page); > return ret; > } > + ext4_journal_stop(handle); > *pagep = page; > return ret; > } > -- > 2.17.1 > -- Jan Kara <jack@...e.com> SUSE Labs, CR
Powered by blists - more mailing lists