diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2023-11-14 22:49:35 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2023-11-23 04:02:00 +0000 |
| commit | 0ea5e0c7ee262f0d1178b6ca4871ab353e3aa0e3 (patch) | |
| tree | f14dd391317011f9a862babfe293ed620e836802 | |
| parent | 0f3bb3b9ee48ddd9dcc2079062f27758bfb4b940 (diff) | |
fuse_vnop_copy_file_range(): add safety
(cherry picked from commit 4c6cded2166111079c6b5e8b2353171dcc7ed0c4)
| -rw-r--r-- | sys/fs/fuse/fuse_vnops.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/fs/fuse/fuse_vnops.c b/sys/fs/fuse/fuse_vnops.c index 0b683a7c63bd..6871461d26f1 100644 --- a/sys/fs/fuse/fuse_vnops.c +++ b/sys/fs/fuse/fuse_vnops.c @@ -862,7 +862,7 @@ fuse_vnop_copy_file_range(struct vop_copy_file_range_args *ap) pid_t pid; int err; - if (mp != vnode_mount(outvp)) + if (mp == NULL || mp != vnode_mount(outvp)) goto fallback; if (incred->cr_uid != outcred->cr_uid) @@ -871,6 +871,7 @@ fuse_vnop_copy_file_range(struct vop_copy_file_range_args *ap) if (incred->cr_groups[0] != outcred->cr_groups[0]) goto fallback; + /* Caller busied mp, mnt_data can be safely accessed. */ if (fsess_not_impl(mp, FUSE_COPY_FILE_RANGE)) goto fallback; |
