Nick Piggin
955eff5acc
[PATCH] fs: fix libfs data leak
...
simple_prepare_write leaks uninitialised kernel data. This happens because
the it leaves an uninitialised "hole" over the part of the page that the
write is expected to go to. This is fine, but it then marks the page
uptodate, which means a concurrent read can come in and copy the
uninitialised memory into userspace before it written to.
Fix it by simply marking it uptodate in simple_commit_write instead, after
the hole has been filled in. This could theoretically break an fs that
uses simple_prepare_write and not simple_commit_write, and that relies on
the incorrect simple_prepare_write behaviour. Luckily, none of those
exists in the tree.
Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:15 -08:00
..
9p
9p: implement optional loose read cache
2007-02-18 10:16:10 -06:00
adfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
affs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
afs
[PATCH] remove many unneeded #includes of sched.h
2007-02-14 08:09:54 -08:00
autofs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
autofs4
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
befs
[PATCH] mark struct inode_operations const 1
2007-02-12 09:48:46 -08:00
bfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
cifs
Storage class should be before const qualifier
2007-02-17 20:11:19 +01:00
coda
[PATCH] sysctl: remove insert_at_head from register_sysctl
2007-02-14 08:09:59 -08:00
configfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
cramfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
debugfs
debugfs: Remove misleading comments.
2007-02-16 15:19:17 -08:00
devpts
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
dlm
[PATCH] mark struct file_operations const 6
2007-02-12 09:48:45 -08:00
ecryptfs
[PATCH] ecryptfs: fix forgotten format specifier
2007-02-16 08:14:01 -08:00
efs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
exportfs
ext2
[PATCH] ext[234]: update documentation
2007-02-20 17:10:14 -08:00
ext3
[PATCH] ext[234]: update documentation
2007-02-20 17:10:14 -08:00
ext4
[PATCH] ext[234]: update documentation
2007-02-20 17:10:14 -08:00
fat
[PATCH] FAT: DIO-write fallback to normal buffered
2007-02-20 17:10:14 -08:00
freevxfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
fuse
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
gfs2
[PATCH] remove many unneeded #includes of sched.h
2007-02-14 08:09:54 -08:00
hfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
hfsplus
[PATCH] remove many unneeded #includes of sched.h
2007-02-14 08:09:54 -08:00
hostfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
hpfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
hppfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
hugetlbfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
isofs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
jbd
[PATCH] jbd: wait for already submitted t_sync_datalist buffer to complete
2006-12-22 08:55:51 -08:00
jbd2
[PATCH] jbd2: wait for already submitted t_sync_datalist buffer to complete
2006-12-07 08:39:42 -08:00
jffs2
Merge git://git.infradead.org/mtd-2.6
2007-02-19 13:34:11 -08:00
jfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
lockd
Replace remaining references to "driverfs" with "sysfs".
2007-02-17 19:13:42 +01:00
minix
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
msdos
[PATCH] mark struct inode_operations const 2
2007-02-12 09:48:46 -08:00
ncpfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
nfs
[PATCH] sysctl: remove insert_at_head from register_sysctl
2007-02-14 08:09:59 -08:00
nfs_common
[PATCH] nfs_common endianness annotations
2006-10-20 10:26:41 -07:00
nfsd
[PATCH] Fix a free-wrong-pointer bug in nfs/acl server.
2007-02-19 16:13:28 -08:00
nls
[PATCH] fs: make nls_cp936.c handle some U00XY characters and U20AC correctly
2006-12-07 08:39:46 -08:00
ntfs
[PATCH] sysctl: remove the proc_dir_entry member for the sysctl tables
2007-02-14 08:10:00 -08:00
ocfs2
Fix typos concerning hierarchy
2007-02-17 19:23:03 +01:00
openpromfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
partitions
Driver: remove redundant kobject_unregister checks
2007-02-16 15:19:17 -08:00
proc
[PATCH] sysctl: hide the sysctl proc inodes from selinux
2007-02-14 08:10:00 -08:00
qnx4
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
ramfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
reiserfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
romfs
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
smbfs
[PATCH] remove many unneeded #includes of sched.h
2007-02-14 08:09:54 -08:00
sysfs
PCI/sysfs/kobject kernel-doc fixes
2007-02-16 15:30:10 -08:00
sysv
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
udf
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
ufs
[PATCH] remove many unneeded #includes of sched.h
2007-02-14 08:09:54 -08:00
vfat
[PATCH] mark struct inode_operations const 3
2007-02-12 09:48:46 -08:00
xfs
[PATCH] xfs warning fix
2007-02-20 17:10:13 -08:00
aio.c
[PATCH] Transform kmem_cache_alloc()+memset(0) -> kmem_cache_zalloc().
2007-02-11 10:51:27 -08:00
attr.c
bad_inode.c
[PATCH] mark struct inode_operations const 1
2007-02-12 09:48:46 -08:00
binfmt_aout.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
binfmt_elf.c
[PATCH] x86: Don't require the vDSO for handling a.out signals
2007-02-13 13:26:26 +01:00
binfmt_elf_fdpic.c
[PATCH] Remove final references to deprecated "MAP_ANON" page protection flag
2007-02-11 10:51:17 -08:00
binfmt_em86.c
binfmt_flat.c
[PATCH] uclinux: correctly remap bin_fmtflat exe allocated mem regions
2007-02-09 10:45:33 -08:00
binfmt_misc.c
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
binfmt_script.c
binfmt_som.c
bio.c
[PATCH] optimize o_direct on block devices
2006-12-13 09:05:50 -08:00
block_dev.c
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
buffer.c
[PATCH] fs: fix __block_write_full_page error case buffer submission
2007-02-20 17:10:13 -08:00
char_dev.c
[PATCH] rework reserved major handling
2007-02-20 17:10:13 -08:00
compat.c
[PATCH] fdtable: Make fdarray and fdsets equal in size
2006-12-10 09:57:22 -08:00
compat_ioctl.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
dcache.c
Revert "[PATCH] Fix d_path for lazy unmounts"
2007-02-13 12:08:18 -08:00
dcookies.c
[PATCH] slab: remove kmem_cache_t
2006-12-07 08:39:25 -08:00
direct-io.c
[PATCH] dio: lock refcount operations
2006-12-10 09:57:21 -08:00
dnotify.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
dquot.c
[PATCH] sysctl: remove insert_at_head from register_sysctl
2007-02-14 08:09:59 -08:00
drop_caches.c
[PATCH] remove invalidate_inode_pages()
2007-02-11 10:51:31 -08:00
eventpoll.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
exec.c
[PATCH] Transform kmem_cache_alloc()+memset(0) -> kmem_cache_zalloc().
2007-02-11 10:51:27 -08:00
fcntl.c
[PATCH] fdtable: Make fdarray and fdsets equal in size
2006-12-10 09:57:22 -08:00
fifo.c
file.c
[PATCH] fdtable: Provide free_fdtable() wrapper
2006-12-22 08:55:50 -08:00
file_table.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
filesystems.c
[PATCH] remove many unneeded #includes of sched.h
2007-02-14 08:09:54 -08:00
fs-writeback.c
Write back inode data pages even when the inode itself is locked
2007-01-26 12:53:20 -08:00
generic_acl.c
inode.c
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
inotify.c
[PATCH] severing fs.h, radix-tree.h -> sched.h
2006-12-04 02:00:24 -05:00
inotify_user.c
[PATCH] inotify: read return val fix
2007-02-12 09:48:28 -08:00
internal.h
ioctl.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
ioprio.c
[PATCH] pid: replace do/while_each_task_pid with do/while_each_pid_task
2007-02-12 09:48:32 -08:00
Kconfig
Remove JFFS (version 1), as scheduled.
2007-02-17 16:10:59 -05:00
Kconfig.binfmt
libfs.c
[PATCH] fs: fix libfs data leak
2007-02-20 17:10:15 -08:00
locks.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
Makefile
Remove JFFS (version 1), as scheduled.
2007-02-17 16:10:59 -05:00
mbcache.c
[PATCH] slab: remove kmem_cache_t
2006-12-07 08:39:25 -08:00
mpage.c
namei.c
[PATCH] __page_symlink retry loop error code fix
2007-02-16 08:13:56 -08:00
namespace.c
[PATCH] Transform kmem_cache_alloc()+memset(0) -> kmem_cache_zalloc().
2007-02-11 10:51:27 -08:00
nfsctl.c
no-block.c
open.c
[PATCH] fdtable: Make fdarray and fdsets equal in size
2006-12-10 09:57:22 -08:00
pipe.c
[PATCH] AUDIT_FD_PAIR
2007-02-17 21:30:15 -05:00
pnode.c
[PATCH] rename struct namespace to struct mnt_namespace
2006-12-08 08:28:51 -08:00
pnode.h
[PATCH] rename struct namespace to struct mnt_namespace
2006-12-08 08:28:51 -08:00
posix_acl.c
quota.c
quota_v1.c
quota_v2.c
read_write.c
[PATCH] FS: speed up rw_verify_area()
2007-02-12 09:48:29 -08:00
read_write.h
readdir.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
select.c
[PATCH] fdtable: Make fdarray and fdsets equal in size
2006-12-10 09:57:22 -08:00
seq_file.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
splice.c
[PATCH] constify pipe_buf_operations
2006-12-13 09:05:47 -08:00
stack.c
[PATCH] fs/stack.c: Copy i_nlink after all other attributes are copied
2007-02-19 14:21:50 -08:00
stat.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
super.c
[PATCH] Mark struct super_operations const
2007-02-12 09:48:47 -08:00
sync.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
utimes.c
[PATCH] severing fs.h, radix-tree.h -> sched.h
2006-12-04 02:00:24 -05:00
xattr.c
[PATCH] VFS: change struct file to use struct path
2006-12-08 08:28:41 -08:00
xattr_acl.c
[PATCH] remove many unneeded #includes of sched.h
2007-02-14 08:09:54 -08:00