git: 5a23e4aa88e4 - stable/13 - OpenZFS: Ensure that zfs_getattr() initializes the va_rdev field
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 10 Dec 2023 17:48:03 UTC
The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=5a23e4aa88e4bf412bf3650b8536140a34e754d5 commit 5a23e4aa88e4bf412bf3650b8536140a34e754d5 Author: Mark Johnston <markjdb@gmail.com> AuthorDate: 2023-12-07 16:20:11 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2023-12-10 17:47:28 +0000 OpenZFS: Ensure that zfs_getattr() initializes the va_rdev field Otherwise the field is left uninitialized, leading to a possible kernel memory disclosure to userspace or to the network. Use the same initialization value we use in zfsctl_common_getattr(). Reported-by: KMSAN Sponsored-by: The FreeBSD Foundation Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Ed Maste <emaste@FreeBSD.org> Signed-off-by: Mark Johnston <markj@FreeBSD.org> (cherry picked from commit 11656234b560c401dec6a16e1bf048b20fd31aac) --- sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c index ea6388dd515e..53126fdd6ec9 100644 --- a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c +++ b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c @@ -2067,6 +2067,8 @@ zfs_getattr(vnode_t *vp, vattr_t *vap, int flags, cred_t *cr) vap->va_size = zp->z_size; if (vp->v_type == VBLK || vp->v_type == VCHR) vap->va_rdev = zfs_cmpldev(rdev); + else + vap->va_rdev = 0; vap->va_gen = zp->z_gen; vap->va_flags = 0; /* FreeBSD: Reset chflags(2) flags. */ vap->va_filerev = zp->z_seq;