patch-2.1.48 linux/fs/ext2/namei.c
Next file: linux/fs/fat/cache.c
Previous file: linux/fs/ext2/ialloc.c
Back to the patch index
Back to the overall index
- Lines: 19
- Date:
Mon Aug 4 12:32:05 1997
- Orig file:
v2.1.47/linux/fs/ext2/namei.c
- Orig date:
Thu Jul 17 10:06:06 1997
diff -u --recursive --new-file v2.1.47/linux/fs/ext2/namei.c linux/fs/ext2/namei.c
@@ -905,10 +905,14 @@
goto end_rename;
}
retval = -EPERM;
- if (new_inode && (new_dir->i_mode & S_ISVTX) &&
- current->fsuid != new_inode->i_uid &&
- current->fsuid != new_dir->i_uid && !fsuser())
- goto end_rename;
+ if (new_inode) {
+ if ((new_dir->i_mode & S_ISVTX) &&
+ current->fsuid != new_inode->i_uid &&
+ current->fsuid != new_dir->i_uid && !fsuser())
+ goto end_rename;
+ if (IS_APPEND(new_inode) || IS_IMMUTABLE(new_inode))
+ goto end_rename;
+ }
if (S_ISDIR(old_inode->i_mode)) {
retval = -ENOTDIR;
if (new_inode && !S_ISDIR(new_inode->i_mode))
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov