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 <torvalds@linux-foundation.org>
This commit is contained in:
parent
1efd48b3ae
commit
7b82dc0e64
1 changed files with 3 additions and 0 deletions
|
@ -210,6 +210,9 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
|
||||||
newattrs.ia_valid |= ATTR_FILE;
|
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);
|
mutex_lock(&dentry->d_inode->i_mutex);
|
||||||
err = notify_change(dentry, &newattrs);
|
err = notify_change(dentry, &newattrs);
|
||||||
mutex_unlock(&dentry->d_inode->i_mutex);
|
mutex_unlock(&dentry->d_inode->i_mutex);
|
||||||
|
|
Loading…
Reference in a new issue