From 7e2a946c4c48b2ddf1e614807ddd42f4abcb734f Mon Sep 17 00:00:00 2001 From: Robert Norton Date: Thu, 5 Aug 2021 12:16:21 +0100 Subject: [PATCH] Fix incorrect check for permitStoreLocalCap in capChecksMem. The check was missing a NOT and was actually checking for permitStoreGlobalCap. --- src_Core/RISCY_OOO/procs/lib/Exec.bsv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src_Core/RISCY_OOO/procs/lib/Exec.bsv b/src_Core/RISCY_OOO/procs/lib/Exec.bsv index 35001ed..ef8a315 100755 --- a/src_Core/RISCY_OOO/procs/lib/Exec.bsv +++ b/src_Core/RISCY_OOO/procs/lib/Exec.bsv @@ -125,7 +125,7 @@ function Maybe#(CSR_XCapCause) capChecksMem(CapPipe auth, CapPipe data, CapCheck result = eAuth(cheriExcPermitWViolation); else if (storeValidCap && !getHardPerms(auth).permitStoreCap) result = eAuth(cheriExcPermitWCapViolation); - else if (storeValidCap && !getHardPerms(auth).permitStoreLocalCap && getHardPerms(data).global) + else if (storeValidCap && !getHardPerms(auth).permitStoreLocalCap && !getHardPerms(data).global) result = eAuth(cheriExcPermitWLocalCapViolation); return result; endfunction