c18n: Allow system calls only for code with CHERI_PERM_SYSCALL and secure mmap #2320
+88
−86
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR removes the
CHERI_PERM_SYSCALL
permission from all libraries exceptlibsys
.Previously, the kernel returns
ECAPMODE
for callers withoutCHERI_PERM_SYSCALL
and optionally enters KDB when that happens. This PR removes the legacy KDB behavior and instead raises a signal (by callingnosys
). This is superior to the old behavior because it makes debugging easier.(Sadly it seems that the best place to cause
nosys
to be called is in MD code. I wonder if there's a better place to do it without disrupting tracing.)This PR also interposes
mmap
and removesCHERI_PERM_EXECUTIVE
andCHERI_PERM_SYSCALL
from any value returned.