Module Name: src
Committed By: simonb
Date: Tue Nov 30 12:37:38 UTC 2021
Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vfsops.c
Log Message:
In zfs_statvfs(), set f_bresvd and f_fresvd to 0. Fixes random kernel
accounting suspend/resumes with erroneous values leaking out.
Note: no userland leakage as statvfs(2) handler memset 0's the buffer.
XXX: Should be fixed with a memset in VFS_STATVFS().
To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.29 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.30
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.29 Thu Aug 27 09:57:33 2020
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c Tue Nov 30 12:37:38 2021
@@ -2182,6 +2182,7 @@ zfs_statvfs(vfs_t *vfsp, struct statvfs
statp->f_blocks = (refdbytes + availbytes) >> SPA_MINBLOCKSHIFT;
statp->f_bfree = availbytes / statp->f_bsize;
statp->f_bavail = statp->f_bfree; /* no root reservation */
+ statp->f_bresvd = 0;
/*
* statvfs() should really be called statufs(), because it assumes
@@ -2196,6 +2197,7 @@ zfs_statvfs(vfs_t *vfsp, struct statvfs
statp->f_favail = statp->f_ffree; /* no "root reservation" */
#endif
statp->f_files = statp->f_ffree + usedobjs;
+ statp->f_fresvd = 0;
#ifdef __FreeBSD__
(void) cmpldev(&d32, vfsp->vfs_dev);