Skip to content

Commit 4d081df

Browse files
committed
vm: Do not issue PERM_SYSCALL as part of CHERI_CAP_USER_DATA_PERMS.
1 parent f5bd85c commit 4d081df

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

bin/cheribsdtest/cheribsdtest_registers.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -315,18 +315,18 @@ CHERIBSDTEST(initregs_default, "Test initial value of default capability")
315315
*/
316316

317317
#define CHERI_STACK_USE_MAX (256 * 1024)
318+
#define CHERI_STACK_SWPERMS \
319+
(CHERI_PERMS_SWALL & ~(CHERI_PERM_SW_VMEM | CHERI_PERM_SYSCALL))
318320

319321
CHERIBSDTEST(initregs_stack_user_perms,
320322
"Test user permissions of stack capability")
321323
{
322324
register_t v;
323325

324326
v = cheri_perms_get(cheri_stack_get());
325-
if ((v & CHERI_PERMS_SWALL) !=
326-
(CHERI_PERMS_SWALL & ~CHERI_PERM_SW_VMEM))
327+
if ((v & CHERI_PERMS_SWALL) != CHERI_STACK_SWPERMS)
327328
cheribsdtest_failure_errx("swperms %jx (expected swperms %x)",
328-
v & CHERI_PERMS_SWALL,
329-
(CHERI_PERMS_SWALL & ~CHERI_PERM_SW_VMEM));
329+
v & CHERI_PERMS_SWALL, CHERI_STACK_SWPERMS);
330330
cheribsdtest_success();
331331
}
332332

sys/cheri/cherireg.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@
8888
#define CHERI_CAP_USER_CODE_LENGTH (VM_MAXUSER_ADDRESS - VM_MINUSER_ADDRESS)
8989
#define CHERI_CAP_USER_CODE_OFFSET 0x0
9090

91-
#define CHERI_CAP_USER_DATA_PERMS CHERI_PERMS_USERSPACE_DATA
91+
#define CHERI_CAP_USER_DATA_PERMS \
92+
(CHERI_PERMS_USERSPACE_DATA & ~CHERI_PERM_SYSCALL)
9293
#define CHERI_CAP_USER_DATA_BASE VM_MINUSER_ADDRESS
9394
#define CHERI_CAP_USER_DATA_LENGTH (VM_MAXUSER_ADDRESS - VM_MINUSER_ADDRESS)
9495
#define CHERI_CAP_USER_DATA_OFFSET 0x0

0 commit comments

Comments
 (0)