Sasha Levin
161f873b89
vfs: read file_handle only once in handle_to_path
...
We used to read file_handle twice. Once to get the amount of extra
bytes, and once to fetch the entire structure.
This may be problematic since we do size verifications only after the
first read, so if the number of extra bytes changes in userspace between
the first and second calls, we'll have an incoherent view of
file_handle.
Instead, read the constant size once, and copy that over to the final
structure without having to re-read it again.
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: stable@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-06-02 10:29:07 -07:00
..
9p
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
adfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
affs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
afs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
autofs4
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
befs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
bfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
btrfs
Merge branch 'for-linus-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs
2015-05-23 11:14:10 -07:00
cachefiles
VFS: fs/cachefiles: d_backing_inode() annotations
2015-04-15 15:06:59 -04:00
ceph
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
cifs
CIFS: Fix race condition on RFC1002_NEGATIVE_SESSION_RESPONSE
2015-05-20 13:25:55 -05:00
coda
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
configfs
configfs: init configfs module earlier at boot time
2015-05-05 17:10:11 -07:00
cramfs
debugfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
devpts
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
dlm
ecryptfs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
efivarfs
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2015-05-06 10:57:37 -07:00
efs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
exofs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
exportfs
VFS: (Scripted) Convert S_ISLNK/DIR/REG(dentry->d_inode) to d_is_*(dentry)
2015-02-22 11:38:41 -05:00
ext2
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
ext3
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
ext4
ext4: fix an ext3 collapse range regression in xfstests
2015-05-15 00:24:10 -04:00
f2fs
f2fs: fix wrong error hanlder in f2fs_follow_link
2015-05-04 14:15:16 -07:00
fat
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
freevxfs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
fscache
fuse
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
gfs2
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
hfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
hfsplus
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
hostfs
hostfs: Use correct mask for file mode
2015-05-04 14:50:29 +02:00
hpfs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
hppfs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
hugetlbfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
isofs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
jbd
jbd2
jbd2: fix r_count overflows leading to buffer overflow in journal recovery
2015-05-14 19:11:50 -04:00
jffs2
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
jfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
kernfs
kernfs: do not account ino_ida allocations to memcg
2015-05-14 17:55:51 -07:00
lockd
nfsd: eliminate NFSD_DEBUG
2015-04-21 16:16:02 -04:00
logfs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
minix
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
ncpfs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
nfs
nfs: take extra reference to fl->fl_file when running a setlk
2015-05-13 14:56:06 -04:00
nfs_common
nfsd
nfsd: skip CB_NULL probes for 4.1 or later
2015-05-04 12:02:42 -04:00
nilfs2
nilfs2: fix sanity check of btree level in nilfs_btree_root_broken()
2015-05-05 17:10:11 -07:00
nls
notify
fanotify: fix event filtering with FAN_ONDIR set
2015-03-12 18:46:08 -07:00
ntfs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
ocfs2
ocfs2: dlm: fix race between purge and get lock resource
2015-05-05 17:10:11 -07:00
omfs
omfs: fix potential integer overflow in allocator
2015-05-28 18:25:19 -07:00
openpromfs
overlayfs
ovl: mount read-only if workdir can't be created
2015-05-19 14:30:12 +02:00
proc
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
pstore
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
qnx4
qnx6
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
quota
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
ramfs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
reiserfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
romfs
make new_sync_{read,write}() static
2015-04-11 22:29:40 -04:00
squashfs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
sysfs
sysfs: Only accept read/write permissions for file attributes
2015-03-25 13:27:57 +01:00
sysv
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
tracefs
ubifs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
udf
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
ufs
VFS: normal filesystems (and lustre): d_inode() annotations
2015-04-15 15:06:57 -04:00
xfs
xfs: fix broken i_nlink accounting for whiteout tmpfile inode
2015-05-29 08:14:55 +10:00
aio.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-16 23:27:56 -04:00
anon_inodes.c
attr.c
bad_inode.c
don't bother with most of the bad_file_ops methods
2015-02-20 04:03:58 -05:00
binfmt_aout.c
binfmt_elf.c
fs/binfmt_elf.c:load_elf_binary(): return -EINVAL on zero-length mappings
2015-05-28 18:25:18 -07:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
binfmt_script.c
block_dev.c
direct-io: only inc/dec inode->i_dio_count for file systems
2015-04-24 15:45:28 -04:00
buffer.c
page_writeback: clean up mess around cancel_dirty_page()
2015-04-14 16:49:01 -07:00
char_dev.c
compat.c
compat_binfmt_elf.c
compat_ioctl.c
Bluetooth: bnep: Add support for get bnep features via ioctl
2015-04-03 23:21:34 +02:00
coredump.c
coredump: accept any write method
2015-04-11 22:29:39 -04:00
dax.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
dcache.c
d_walk() might skip too much
2015-05-28 23:45:30 -04:00
dcookies.c
direct-io.c
direct-io: only inc/dec inode->i_dio_count for file systems
2015-04-24 15:45:28 -04:00
drop_caches.c
eventfd.c
eventfd: don't take the spinlock in eventfd_poll
2015-02-17 14:34:52 -08:00
eventpoll.c
exec.c
parisc,metag: Fix crashes due to stack randomization on stack-grows-upwards architectures
2015-05-12 22:03:44 +02:00
fcntl.c
fhandle.c
vfs: read file_handle only once in handle_to_path
2015-06-02 10:29:07 -07:00
file.c
mm: rcu-protected get_mm_exe_file()
2015-04-17 09:04:07 -04:00
file_table.c
->aio_read and ->aio_write removed
2015-04-11 22:29:43 -04:00
filesystems.c
fs-writeback.c
fs: add dirtytime_expire_seconds sysctl
2015-03-17 12:23:32 -04:00
fs_pin.c
fs_pin: Allow for the possibility that m_list or s_list go unused.
2015-04-09 11:39:55 -05:00
fs_struct.c
inode.c
direct-io: only inc/dec inode->i_dio_count for file systems
2015-04-24 15:45:28 -04:00
internal.h
trylock_super(): replacement for grab_super_passive()
2015-02-22 11:38:42 -05:00
ioctl.c
Kconfig
f2fs: relocate Kconfig from misc filesystems
2015-04-10 15:08:35 -07:00
Kconfig.binfmt
mm: split ET_DYN ASLR from mmap ASLR
2015-04-14 16:49:05 -07:00
libfs.c
VFS: fs library helpers: d_inode() annotations
2015-04-15 15:06:58 -04:00
locks.c
proc: show locks in /proc/pid/fdinfo/X
2015-04-17 09:04:12 -04:00
Makefile
This adds the new tracefs file system. This has been in linux-next for
2015-04-14 10:22:29 -07:00
mbcache.c
mount.h
mpage.c
namei.c
path_openat(): fix double fput()
2015-05-09 00:12:48 -04:00
namespace.c
mnt: Fix fs_fully_visible to verify the root directory is visible
2015-05-09 11:55:50 -05:00
no-block.c
nsfs.c
VFS: assorted weird filesystems: d_inode() annotations
2015-04-15 15:06:58 -04:00
open.c
xfs: update for 4.1-rc1
2015-04-24 07:08:41 -07:00
pipe.c
VFS: assorted weird filesystems: d_inode() annotations
2015-04-15 15:06:58 -04:00
pnode.c
mnt: Don't propagate unmounts to locked mounts
2015-04-02 20:34:20 -05:00
pnode.h
mnt: Honor MNT_LOCKED when detaching mounts
2015-04-09 11:39:55 -05:00
posix_acl.c
VFS: assorted d_backing_inode() annotations
2015-04-15 15:06:59 -04:00
proc_namespace.c
read_write.c
new_sync_write(): discard ->ki_pos unless the return value is positive
2015-04-11 22:29:46 -04:00
readdir.c
select.c
seq_file.c
signalfd.c
splice.c
splice: sendfile() at once fails for big files
2015-05-06 09:27:41 -06:00
stack.c
stat.c
VFS: assorted d_backing_inode() annotations
2015-04-15 15:06:59 -04:00
statfs.c
super.c
cleancache: remove limit on the number of cleancache enabled filesystems
2015-04-14 16:49:03 -07:00
sync.c
timerfd.c
utimes.c
xattr.c