From 7b82dc0e64e93f430182f36b46b79fcee87d3532 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 8 May 2007 20:10:00 -0700 Subject: Remove suid/sgid bits on [f]truncate() .. to match what we do on write(). This way, people who write to files by using [f]truncate + writable mmap have the same semantics as if they were using the write() family of system calls. Signed-off-by: Linus Torvalds --- fs/open.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'fs/open.c') diff --git a/fs/open.c b/fs/open.c index ca9981c4a658..0d515d161974 100644 --- a/fs/open.c +++ b/fs/open.c @@ -210,6 +210,9 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, newattrs.ia_valid |= ATTR_FILE; } + /* Remove suid/sgid on truncate too */ + newattrs.ia_valid |= should_remove_suid(dentry); + mutex_lock(&dentry->d_inode->i_mutex); err = notify_change(dentry, &newattrs); mutex_unlock(&dentry->d_inode->i_mutex); -- cgit v1.2.3