From: Greg Kroah-Hartman Date: Wed, 23 May 2018 17:22:33 +0000 (+0200) Subject: 3.18-stable patches X-Git-Tag: v3.18.110~25 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=28a8bdbef9c9281fa57cd3c46abfb75c443731c0;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: ext2-fix-a-block-leak.patch --- diff --git a/queue-3.18/ext2-fix-a-block-leak.patch b/queue-3.18/ext2-fix-a-block-leak.patch new file mode 100644 index 00000000000..f0d24cf7503 --- /dev/null +++ b/queue-3.18/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 +@@ -1169,21 +1169,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; + __ext2_truncate_blocks(inode, offset); + } + diff --git a/queue-3.18/series b/queue-3.18/series index 70d8de75da0..3a06bf7550d 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -37,3 +37,4 @@ tick-broadcast-use-for_each_cpu-specially-on-up-kernels.patch arm-8772-1-kprobes-prohibit-kprobes-on-get_user-functions.patch net-test-tailroom-before-appending-to-linear-skb.patch tcp-purge-write-queue-in-tcp_connect_init.patch +ext2-fix-a-block-leak.patch