X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Fopen.c;h=0d515d1619747b00e724471a407f2a6cf6ea51d7;hb=ecd27b92fbb41f779d857632a69bd45dbaf0f915;hp=0d94319e8681b010cb8aaf0bf9c5df77504ddcde;hpb=88032b322a38b37335c8cb2e3473a45c81d280eb;p=linux-2.6 diff --git a/fs/open.c b/fs/open.c index 0d94319e86..0d515d1619 100644 --- a/fs/open.c +++ b/fs/open.c @@ -7,7 +7,6 @@ #include #include #include -#include #include #include #include @@ -211,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); @@ -864,8 +866,7 @@ int get_unused_fd(void) repeat: fdt = files_fdtable(files); - fd = find_next_zero_bit(fdt->open_fds->fds_bits, - fdt->max_fdset, + fd = find_next_zero_bit(fdt->open_fds->fds_bits, fdt->max_fds, files->next_fd); /*