patch-2.0.31 linux/fs/namei.c
Next file: linux/fs/ncpfs/dir.c
Previous file: linux/fs/locks.c
Back to the patch index
Back to the overall index
- Lines: 31
- Date:
Sat Aug 16 16:23:19 1997
- Orig file:
v2.0.30/linux/fs/namei.c
- Orig date:
Mon Mar 17 17:28:54 1997
diff -u --recursive --new-file v2.0.30/linux/fs/namei.c linux/fs/namei.c
@@ -6,6 +6,8 @@
/*
* Some corrections by tytso.
+ *
+ * Aug 97 - cevans - fix security problem with O_TRUNC and append only files
*/
#include <asm/segment.h>
@@ -282,6 +284,10 @@
return error;
} else
iput(base);
+ if ((inode->i_flags & S_BAD_INODE) != 0) {
+ iput(inode);
+ return -EIO;
+ }
*res_inode = inode;
return 0;
}
@@ -424,8 +430,9 @@
}
/*
* An append-only file must be opened in append mode for writing
+ * Additionally, we must disallow O_TRUNC -- cevans
*/
- if (IS_APPEND(inode) && ((flag & FMODE_WRITE) && !(flag & O_APPEND))) {
+ if (IS_APPEND(inode) && (((flag & FMODE_WRITE) && !(flag & O_APPEND)) || (flag & O_TRUNC))) {
iput(inode);
return -EPERM;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov