DragonFlyBSD Kernel Audit
DF-2697 / fix.both.diff
← back to finding ↓ download raw
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 91477e9..dff8bef 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -1722,7 +1722,6 @@ vaccess(enum vtype type, mode_t file_mode, uid_t uid, gid_t gid,
 	mode_t acc_mode, struct ucred *cred)
 {
 	mode_t mask;
-	int ismember;
 
 	/*
 	 * Super-user always gets read/write access, but execute access depends
@@ -1749,8 +1748,7 @@ vaccess(enum vtype type, mode_t file_mode, uid_t uid, gid_t gid,
 	}
 
 	/* Otherwise, check the groups. */
-	ismember = groupmember(gid, cred);
-	if (cred->cr_svgid == gid || ismember) {
+	if (groupmember(gid, cred)) {
 		if (acc_mode & VEXEC)
 			mask |= S_IXGRP;
 		if (acc_mode & VREAD)
diff --git a/sys/vfs/hammer/hammer_vnops.c b/sys/vfs/hammer/hammer_vnops.c
index c8150ed..911a074 100644
--- a/sys/vfs/hammer/hammer_vnops.c
+++ b/sys/vfs/hammer/hammer_vnops.c
@@ -2577,7 +2577,7 @@ hammer_vop_mountctl(struct vop_mountctl_args *ap)
 						    &error);
 		}
 
-		*ap->a_res += usedbytes;
+		*ap->a_res = usedbytes;
 		break;
 	default:
 		error = vop_stdmountctl(ap);