Ilya Dryomov
193490dbe5
ceph: canonicalize server path in place
...
commit b27a939e8376a3f1ed09b9c33ef44d20f18ec3d0 upstream.
syzbot reported that 4fbc0c711b24 ("ceph: remove the extra slashes in
the server path") had caused a regression where an allocation could be
done under a spinlock -- compare_mount_options() is called by sget_fc()
with sb_lock held.
We don't really need the supplied server path, so canonicalize it
in place and compare it directly. To make this work, the leading
slash is kept around and the logic in ceph_real_mount() to skip it
is restored. CEPH_MSG_CLIENT_SESSION now reports the same (i.e.
canonicalized) path, with the leading slash of course.
Fixes: 4fbc0c711b24 ("ceph: remove the extra slashes in the server path")
Reported-by: syzbot+98704a51af8e3d9425a9@syzkaller.appspotmail.com
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Luis Henriques <lhenriques@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-04-13 10:48:11 +02:00
..
9p
9p pull request for inclusion in 5.4
2019-09-27 15:10:34 -07:00
adfs
Merge branch 'work.adfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 11:33:22 -07:00
affs
affs: fix a memory leak in affs_remount
2020-01-17 19:48:50 +01:00
afs
afs: Fix unpinned address list during probing
2020-04-01 11:02:08 +02:00
autofs
autofs: fix a leak in autofs_expire_indirect()
2019-10-25 00:03:11 -04:00
befs
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
bfs
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
btrfs
btrfs: fix log context list corruption after rename whiteout error
2020-03-25 08:25:56 +01:00
cachefiles
ceph
ceph: canonicalize server path in place
2020-04-13 10:48:11 +02:00
cifs
CIFS: fiemap: do not return EINVAL if get nothing
2020-03-25 08:25:54 +01:00
coda
y2038: add inode timestamp clamping
2019-09-19 09:42:37 -07:00
configfs
utimes: Clamp the timestamps in notify_change()
2020-02-11 04:35:12 -08:00
cramfs
cramfs: fix usage on non-MTD device
2019-11-23 21:44:49 -05:00
crypto
fscrypt: don't evict dirty inodes after removing key
2020-03-18 07:17:53 +01:00
debugfs
debugfs: Return -EPERM when locked down
2020-02-01 09:34:35 +00:00
devpts
devpts_pty_kill(): don't bother with d_delete()
2019-09-03 09:30:56 -04:00
dlm
dlm for 5.3
2019-07-12 17:37:53 -07:00
ecryptfs
ecryptfs: replace BUG_ON with error handling code
2020-02-28 17:22:26 +01:00
efivarfs
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
efs
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
erofs
erofs: fix out-of-bound read for shifted uncompressed block
2020-02-11 04:35:23 -08:00
exportfs
exportfs_decode_fh(): negative pinned may become positive without the parent locked
2019-11-10 11:56:05 -05:00
ext2
ext2: Adjust indentation in ext2_fill_super
2020-02-11 04:35:45 -08:00
ext4
ext4: potential crash on allocation error in ext4_alloc_flex_bg_array()
2020-03-05 16:43:41 +01:00
f2fs
f2fs: fix to add swap extent correctly
2020-03-05 16:43:48 +01:00
fat
fat: fix uninit-memory access for partial initialized inode
2020-03-12 13:00:19 +01:00
freevxfs
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
fscache
Revert "Merge tag 'keys-acl-20190703' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs"
2019-07-10 18:43:43 -07:00
fuse
fuse: fix stack use after return
2020-03-18 07:17:52 +01:00
gfs2
gfs2_atomic_open(): fix O_EXCL|O_CREAT handling on cold dcache
2020-03-18 07:17:51 +01:00
hfs
hfsplus
fs/hfsplus/xattr.c: replace strncpy with memcpy
2019-07-16 19:23:23 -07:00
hostfs
hpfs
fs: hpfs: Initialize filesystem timestamp ranges
2019-08-30 08:11:25 -07:00
hugetlbfs
mm/hugetlbfs: fix for_each_hstate() loop in init_hugetlbfs_fs()
2020-01-04 19:19:19 +01:00
iomap
iomap: fix return value of iomap_dio_bio_actor on 32bit systems
2020-01-04 19:17:31 +01:00
isofs
y2038: add inode timestamp clamping
2019-09-19 09:42:37 -07:00
jbd2
jbd2: fix data races at struct journal_head
2020-03-21 08:11:57 +01:00
jffs2
Revert "jffs2: Fix possible null-pointer dereferences in jffs2_add_frag_to_fragtree()"
2019-12-04 22:31:06 +01:00
jfs
y2038: add inode timestamp clamping
2019-09-19 09:42:37 -07:00
kernfs
kernfs: fix ino wrap-around detection
2019-12-13 08:42:53 +01:00
lockd
minix
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
nfs
nfs: add minor version to nfs_server_key for fscache
2020-04-01 11:01:50 +02:00
nfs_common
nfsd
nfsd: Clone should commit src file metadata too
2020-02-24 08:36:38 +01:00
nilfs2
nls
notify
fs: call fsnotify_sb_delete after evict_inodes
2020-01-12 12:21:38 +01:00
ntfs
utimes: Clamp the timestamps in notify_change()
2020-02-11 04:35:12 -08:00
ocfs2
ocfs2: fix a NULL pointer dereference when call ocfs2_update_inode_fsync_trans()
2020-02-24 08:37:00 +01:00
omfs
fs: omfs: Initialize filesystem timestamp ranges
2019-08-30 08:11:25 -07:00
openpromfs
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
orangefs
help_next should increase position index
2020-02-24 08:37:02 +01:00
overlayfs
ovl: fix lseek overflow on 32bit
2020-02-11 04:35:24 -08:00
proc
proc/meminfo: fix output alignment
2019-10-19 06:32:32 -04:00
pstore
pstore/ram: Regularize prz label allocation lifetime
2020-01-14 20:08:28 +01:00
qnx4
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
qnx6
fs: Fill in max and min timestamps in superblock
2019-08-30 07:27:17 -07:00
quota
fs: avoid softlockups in s_inodes iterators
2020-01-12 12:21:37 +01:00
ramfs
vfs: Convert ramfs, shmem, tmpfs, devtmpfs, rootfs to use the new mount API
2019-09-12 21:05:34 -04:00
reiserfs
reiserfs: prevent NULL pointer dereference in reiserfs_insert_item()
2020-02-24 08:37:00 +01:00
romfs
Merge branch 'work.mount2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-09-19 10:06:57 -07:00
squashfs
Merge branch 'work.mount2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-09-19 10:06:57 -07:00
sysfs
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
sysv
fs: sysv: Initialize filesystem timestamp ranges
2019-08-30 07:27:18 -07:00
tracefs
tracing: Do not create tracefs files if tracefs lockdown is in effect
2019-10-12 20:49:07 -04:00
ubifs
ubifs: Fix ino_t format warnings in orphan_delete()
2020-03-05 16:43:50 +01:00
udf
udf: Fix free space reporting for metadata and virtual partitions
2020-02-24 08:36:44 +01:00
ufs
y2038: add inode timestamp clamping
2019-09-19 09:42:37 -07:00
unicode
unicode: make array 'token' static const, makes object smaller
2019-09-17 11:48:24 -04:00
verity
fs-verity: support builtin file signatures
2019-08-12 19:33:50 -07:00
xfs
xfs: clear kernel only flags in XFS_IOC_ATTRMULTI_BY_HANDLE
2020-03-05 16:43:51 +01:00
aio.c
aio: prevent potential eventfd recursion on poll
2020-02-11 04:35:37 -08:00
anon_inodes.c
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
attr.c
utimes: Clamp the timestamps in notify_change()
2020-02-11 04:35:12 -08:00
bad_inode.c
binfmt_aout.c
binfmt_elf.c
elf: don't use MAP_FIXED_NOREPLACE for elf executable mappings
2019-10-06 13:53:27 -07:00
binfmt_elf_fdpic.c
binfmt_em86.c
binfmt_flat.c
fs/binfmt_flat.c: remove set but not used variable 'inode'
2019-07-16 19:23:22 -07:00
binfmt_misc.c
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
binfmt_script.c
block_dev.c
bdev: Refresh bdev size for disks without partitioning
2019-12-13 08:43:19 +01:00
buffer.c
fs: move guard_bio_eod() after bio_set_op_attrs
2020-01-17 19:48:21 +01:00
char_dev.c
chardev: Avoid potential use-after-free in 'chrdev_open()'
2020-01-14 20:08:18 +01:00
compat.c
compat_binfmt_elf.c
compat_ioctl.c
fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
2020-01-09 10:20:05 +01:00
coredump.c
coredump: split pipe command whitespace before expanding template
2019-08-03 07:02:01 -07:00
d_path.c
[PATCH] fix d_absolute_path() interplay with fsmount()
2019-08-30 19:31:09 -04:00
dax.c
dax: pass NOWAIT flag to iomap_apply
2020-03-05 16:43:36 +01:00
dcache.c
Merge branch 'work.dcache2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-20 09:15:51 -07:00
dcookies.c
direct-io.c
fs/direct-io.c: fix kernel-doc warning
2019-10-14 15:04:01 -07:00
drop_caches.c
fs: avoid softlockups in s_inodes iterators
2020-01-12 12:21:37 +01:00
eventfd.c
eventfd: track eventfd_signal() recursion depth
2020-02-11 04:35:37 -08:00
eventpoll.c
epoll: fix possible lost wakeup on epoll_ctl() path
2020-03-25 08:25:57 +01:00
exec.c
exit/exec: Seperate mm_release()
2019-11-29 10:10:10 +01:00
fcntl.c
fhandle.c
fs/handle.c - fix up kerneldoc
2019-08-07 21:51:47 -04:00
file.c
file_table.c
vfs: Export flush_delayed_fput for use by knfsd.
2019-08-19 11:00:39 -04:00
filesystems.c
fs-writeback.c
memcg: fix a crash in wb_workfn when a device disappears
2020-02-11 04:35:11 -08:00
fs_context.c
vfs: subtype handling moved to fuse
2019-09-06 21:28:49 +02:00
fs_parser.c
vfs: Make fs_parse() handle fs_param_is_fd-type params better
2019-09-12 21:06:14 -04:00
fs_pin.c
switch the remnants of releasing the mountpoint away from fs_pin
2019-07-16 22:52:37 -04:00
fs_struct.c
fs_types.c
fsopen.c
Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2019-07-19 10:42:02 -07:00
inode.c
futex: Fix inode life-time issue
2020-03-25 08:25:58 +01:00
internal.h
fs: move guard_bio_eod() after bio_set_op_attrs
2020-01-17 19:48:21 +01:00
io_uring.c
io_uring: fix 32-bit compatability with sendmsg/recvmsg
2020-03-05 16:43:44 +01:00
ioctl.c
compat_ioctl: add compat_ptr_ioctl()
2019-12-17 19:55:30 +01:00
Kconfig
fs-verity for 5.4
2019-09-18 16:59:14 -07:00
Kconfig.binfmt
libfs.c
libfs: fix infoleak in simple_attr_read()
2020-04-01 11:02:17 +02:00
locks.c
locks: reinstate locks_delete_block optimization
2020-03-25 08:25:41 +01:00
Makefile
fs-verity for 5.4
2019-09-18 16:59:14 -07:00
mbcache.c
mount.h
switch the remnants of releasing the mountpoint away from fs_pin
2019-07-16 22:52:37 -04:00
mpage.c
fs: move guard_bio_eod() after bio_set_op_attrs
2020-01-17 19:48:21 +01:00
namei.c
namei: only return -ECHILD from follow_dotdot_rcu()
2020-03-05 16:43:48 +01:00
namespace.c
fs/namespace.c: fix use-after-free of mount in mnt_warn_timestamp_expiry()
2019-10-16 23:15:09 -04:00
no-block.c
nsfs.c
open.c
cifs_atomic_open(): fix double-put on late allocation failure
2020-03-18 07:17:51 +01:00
pipe.c
pnode.c
pnode.h
posix_acl.c
proc_namespace.c
vfs: subtype handling moved to fuse
2019-09-06 21:28:49 +02:00
read_write.c
fs: allow deduplication of eof block into the end of the destination file
2020-02-11 04:35:23 -08:00
readdir.c
readdir: be more conservative with directory entry names
2020-01-29 16:45:31 +01:00
select.c
fs/select.c: use struct_size() in kmalloc()
2019-07-16 19:23:25 -07:00
seq_file.c
seq_file: fix problem when seeking mid-record
2019-08-13 16:06:52 -07:00
signalfd.c
splice.c
splice: only read in as much information as there is pipe buffer space
2019-12-17 19:56:52 +01:00
stack.c
stat.c
statfs.c
vfs: Fix EOVERFLOW testing in put_compat_statfs64
2019-10-03 14:21:35 -07:00
super.c
fs: call fsnotify_sb_delete after evict_inodes
2020-01-12 12:21:38 +01:00
sync.c
timerfd.c
timerfd: Prepare for PREEMPT_RT
2019-08-01 20:51:23 +02:00
userfaultfd.c
userfaultfd: require CAP_SYS_PTRACE for UFFD_FEATURE_EVENT_FORK
2020-01-04 19:18:32 +01:00
utimes.c
utimes: Clamp the timestamps in notify_change()
2020-02-11 04:35:12 -08:00
xattr.c