Fix: protectRX flushed CPU cache only on MacOS/iOS

This commit is contained in:
SChernykh 2022-09-21 15:18:06 +02:00
parent 8bd3b393ef
commit 7b52a41459

View file

@ -112,13 +112,19 @@ bool xmrig::VirtualMemory::protectRWX(void *p, size_t size)
bool xmrig::VirtualMemory::protectRX(void *p, size_t size) bool xmrig::VirtualMemory::protectRX(void *p, size_t size)
{ {
bool result = true;
# if defined(XMRIG_OS_APPLE) && defined(XMRIG_ARM) # if defined(XMRIG_OS_APPLE) && defined(XMRIG_ARM)
pthread_jit_write_protect_np(true); pthread_jit_write_protect_np(true);
flushInstructionCache(p, size);
return true;
# else # else
return mprotect(p, size, PROT_READ | PROT_EXEC) == 0; result = (mprotect(p, size, PROT_READ | PROT_EXEC) == 0);
# endif # endif
# if defined(XMRIG_ARM)
flushInstructionCache(p, size);
# endif
return result;
} }