linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC][PATCH] ext2: fix a block leak
@ 2018-05-18  0:06 Al Viro
  2018-05-23 11:58 ` Jan Kara
  0 siblings, 1 reply; 3+ messages in thread
From: Al Viro @ 2018-05-18  0:06 UTC (permalink / raw)
  To: linux-fsdevel

open file, unlink it, then use ioctl(2) to make it immutable or
append only.  Now close it and watch the blocks *not* freed...

Immutable/append-only checks belong in ->setattr().
Note: the bug is old and backport to anything prior to 737f2e93b972
("ext2: convert to use the new truncate convention") will need
these checks lifted into ext2_setattr().

Cc: stable@kernel.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c
index 1e01fabef130..71635909df3b 100644
--- a/fs/ext2/inode.c
+++ b/fs/ext2/inode.c
@@ -1264,21 +1264,11 @@ static void __ext2_truncate_blocks(struct inode *inode, loff_t offset)
 
 static void ext2_truncate_blocks(struct inode *inode, loff_t offset)
 {
-	/*
-	 * XXX: it seems like a bug here that we don't allow
-	 * IS_APPEND inode to have blocks-past-i_size trimmed off.
-	 * review and fix this.
-	 *
-	 * Also would be nice to be able to handle IO errors and such,
-	 * but that's probably too much to ask.
-	 */
 	if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
 	    S_ISLNK(inode->i_mode)))
 		return;
 	if (ext2_inode_is_fast_symlink(inode))
 		return;
-	if (IS_APPEND(inode) || IS_IMMUTABLE(inode))
-		return;
 
 	dax_sem_down_write(EXT2_I(inode));
 	__ext2_truncate_blocks(inode, offset);

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC][PATCH] ext2: fix a block leak
  2018-05-18  0:06 [RFC][PATCH] ext2: fix a block leak Al Viro
@ 2018-05-23 11:58 ` Jan Kara
  2018-05-23 14:24   ` Jan Kara
  0 siblings, 1 reply; 3+ messages in thread
From: Jan Kara @ 2018-05-23 11:58 UTC (permalink / raw)
  To: Al Viro; +Cc: linux-fsdevel

On Fri 18-05-18 01:06:25, Al Viro wrote:
> open file, unlink it, then use ioctl(2) to make it immutable or
> append only.  Now close it and watch the blocks *not* freed...
> 
> Immutable/append-only checks belong in ->setattr().
> Note: the bug is old and backport to anything prior to 737f2e93b972
> ("ext2: convert to use the new truncate convention") will need
> these checks lifted into ext2_setattr().
> 
> Cc: stable@kernel.org
> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Sorry, I've been busy with other stuff after LSF/MM and then forgot about
this. Thanks for the patch! I've added the patch to my tree.

								Honza
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [RFC][PATCH] ext2: fix a block leak
  2018-05-23 11:58 ` Jan Kara
@ 2018-05-23 14:24   ` Jan Kara
  0 siblings, 0 replies; 3+ messages in thread
From: Jan Kara @ 2018-05-23 14:24 UTC (permalink / raw)
  To: Al Viro; +Cc: linux-fsdevel

On Wed 23-05-18 13:58:24, Jan Kara wrote:
> On Fri 18-05-18 01:06:25, Al Viro wrote:
> > open file, unlink it, then use ioctl(2) to make it immutable or
> > append only.  Now close it and watch the blocks *not* freed...
> > 
> > Immutable/append-only checks belong in ->setattr().
> > Note: the bug is old and backport to anything prior to 737f2e93b972
> > ("ext2: convert to use the new truncate convention") will need
> > these checks lifted into ext2_setattr().
> > 
> > Cc: stable@kernel.org
> > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
> 
> Sorry, I've been busy with other stuff after LSF/MM and then forgot about
> this. Thanks for the patch! I've added the patch to my tree.

Bah, and now I see (thanks Amir for the notice) you've already pushed it to
Linus. Sorry for the noise.

								Honza
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-05-23 14:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-18  0:06 [RFC][PATCH] ext2: fix a block leak Al Viro
2018-05-23 11:58 ` Jan Kara
2018-05-23 14:24   ` Jan Kara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).