Gracefully handle pkey unavailable

All other pkey syscalls already handle errors gracefully.
But in case of a seccomp filter that blocks pkey but doesn't terminate, this change is necessary to continue to function.

Signed-off-by: Tad <tad@spotco.us>
This commit is contained in:
Tad 2023-11-25 17:30:26 -05:00
parent 61821b02c8
commit 3ecd4ce354
No known key found for this signature in database
GPG key ID: B286E9F57A07424B

View file

@ -61,7 +61,12 @@ bool memory_unmap(void *ptr, size_t size) {
static bool memory_protect_prot(void *ptr, size_t size, int prot, UNUSED int pkey) {
#ifdef USE_PKEY
bool ret = pkey_mprotect(ptr, size, prot, pkey);
bool ret;
if (pkey > 0) {
ret = pkey_mprotect(ptr, size, prot, pkey);
} else {
ret = mprotect(ptr, size, prot);
}
#else
bool ret = mprotect(ptr, size, prot);
#endif