From b940dd4fa8532f1527df30a179cce342fc49ad73 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Tue, 9 Mar 2021 09:32:23 +0100 Subject: [PATCH] UserspaceEmulator: Never try to mprotect(PROT_EXEC) MmapRegion backing We never want to map host memory executable anyway, so let's always mask off the PROT_EXEC bit. --- Userland/DevTools/UserspaceEmulator/MmapRegion.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Userland/DevTools/UserspaceEmulator/MmapRegion.cpp b/Userland/DevTools/UserspaceEmulator/MmapRegion.cpp index 4661feb656..43655962e0 100644 --- a/Userland/DevTools/UserspaceEmulator/MmapRegion.cpp +++ b/Userland/DevTools/UserspaceEmulator/MmapRegion.cpp @@ -242,7 +242,10 @@ void MmapRegion::set_prot(int prot) set_writable(prot & PROT_WRITE); set_executable(prot & PROT_EXEC); if (m_file_backed) { - mprotect(m_data, size(), prot); + if (mprotect(m_data, size(), prot & ~PROT_EXEC) < 0) { + perror("MmapRegion::set_prot: mprotect"); + exit(1); + } } }