--- a/sys/vfs/hammer/hammer_vnops.c +++ b/sys/vfs/hammer/hammer_vnops.c @@ -2577,7 +2577,7 @@ &error); } - *ap->a_res += usedbytes; + *ap->a_res = usedbytes; break; default: error = vop_stdmountctl(ap); --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -1331,6 +1331,8 @@ buf, uap->buflen, &sysmsg->sysmsg_result); if (fp) dropfp(td, uap->fd, fp); + if (sysmsg->sysmsg_result > uap->buflen) /* DF-5808 */ + sysmsg->sysmsg_result = uap->buflen; if (error == 0 && sysmsg->sysmsg_result > 0) error = copyout(buf, uap->buf, sysmsg->sysmsg_result); done: