From: Greg Kroah-Hartman Date: Wed, 23 May 2018 17:22:52 +0000 (+0200) Subject: 4.14-stable patches X-Git-Tag: v3.18.110~24 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=48859f3727ca238f12ae3918f6bcae18a2c131c6;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: ext2-fix-a-block-leak.patch --- diff --git a/queue-4.14/ext2-fix-a-block-leak.patch b/queue-4.14/ext2-fix-a-block-leak.patch new file mode 100644 index 00000000000..bd5bddc83d4 --- /dev/null +++ b/queue-4.14/ext2-fix-a-block-leak.patch @@ -0,0 +1,49 @@ +From 5aa1437d2d9a068c0334bd7c9dafa8ec4f97f13b Mon Sep 17 00:00:00 2001 +From: Al Viro +Date: Thu, 17 May 2018 17:18:30 -0400 +Subject: ext2: fix a block leak + +From: Al Viro + +commit 5aa1437d2d9a068c0334bd7c9dafa8ec4f97f13b upstream. + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + fs/ext2/inode.c | 10 ---------- + 1 file changed, 10 deletions(-) + +--- a/fs/ext2/inode.c ++++ b/fs/ext2/inode.c +@@ -1261,21 +1261,11 @@ do_indirects: + + 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); diff --git a/queue-4.14/series b/queue-4.14/series index f502f401830..035700ce344 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -33,3 +33,4 @@ hv_netvsc-split-netvsc_revoke_buf-and-netvsc_teardown_gpadl.patch hv_netvsc-ensure-correct-teardown-message-sequence-order.patch hv_netvsc-fix-net-device-attach-on-older-windows-hosts.patch sparc-vio-use-put_device-instead-of-kfree.patch +ext2-fix-a-block-leak.patch