ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate

Previous thread: ext4: don't scan/accumulate more pages than mballoc will allocate by Linux Kernel Mailing List on Thursday, May 27, 2010 - 11:01 am. (1 message)

Next thread: firewire: cdev: mark char device files as not seekable by Linux Kernel Mailing List on Thursday, May 27, 2010 - 11:01 am. (1 message)
From: Linux Kernel Mailing List
Date: Thursday, May 27, 2010 - 11:01 am

Gitweb:     http://git.kernel.org/linus/6d19c42b7cf81c39632b6d4dbc514e8449bcd346
Commit:     6d19c42b7cf81c39632b6d4dbc514e8449bcd346
Parent:     fbe845ddf368f77f86aa7500f8fd2690f54c66a8
Author:     Nikanth Karthikesan <knikanth@suse.de>
AuthorDate: Sun May 16 14:00:00 2010 -0400
Committer:  Theodore Ts'o <tytso@mit.edu>
CommitDate: Sun May 16 14:00:00 2010 -0400

    ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate
    
    Currently using posix_fallocate one can bypass an RLIMIT_FSIZE limit
    and create a file larger than the limit. Add a check for that.
    
    Signed-off-by: Nikanth Karthikesan <knikanth@suse.de>
    Signed-off-by: Amit Arora <aarora@in.ibm.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 fs/ext4/extents.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index ee611da..8a8f9f0 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -3708,6 +3708,11 @@ long ext4_fallocate(struct inode *inode, int mode, loff_t offset, loff_t len)
 	 */
 	credits = ext4_chunk_trans_blocks(inode, max_blocks);
 	mutex_lock(&inode->i_mutex);
+	ret = inode_newsize_ok(inode, (len + offset));
+	if (ret) {
+		mutex_unlock(&inode->i_mutex);
+		return ret;
+	}
 retry:
 	while (ret >= 0 && ret < max_blocks) {
 		block = block + ret;
--

Previous thread: ext4: don't scan/accumulate more pages than mballoc will allocate by Linux Kernel Mailing List on Thursday, May 27, 2010 - 11:01 am. (1 message)

Next thread: firewire: cdev: mark char device files as not seekable by Linux Kernel Mailing List on Thursday, May 27, 2010 - 11:01 am. (1 message)