DragonFlyBSD Kernel Audit
DF-0165 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/kern/kern_caps.c b/sys/kern/kern_caps.c
--- a/sys/kern/kern_caps.c
+++ b/sys/kern/kern_caps.c
@@ -332,8 +332,9 @@
 
 	res = caps_check_cred(cred, cap);
 	if (cap & __SYSCAP_GROUP_MASK) {
-		cap = (cap & __SYSCAP_GROUP_MASK) >> __SYSCAP_GROUP_SHIFT;
-		res |= caps_check_cred(cred, cap);
+		int gcap = (cap & __SYSCAP_GROUP_MASK) >> __SYSCAP_GROUP_SHIFT;
+
+		res |= caps_check_cred(cred, gcap);
 	}
 	if (res & __SYSCAP_SELF)
 		return EPERM;