diff --git a/rts/Linker.c b/rts/Linker.c index 9c1852d91c1d6b81a87fbb91b644594d22232cad..1b3caa0a47b61bfd561bb210c3656da6757c48e3 100644 --- a/rts/Linker.c +++ b/rts/Linker.c @@ -1086,6 +1086,9 @@ void mmapForLinkerMarkExecutable(void *start, size_t len) { DWORD old; + if (len == 0) { + return; + } if (VirtualProtect(start, len, PAGE_EXECUTE_READ, &old) == 0) { sysErrorBelch("mmapForLinkerMarkExecutable: failed to protect %zd bytes at %p", len, start); @@ -1257,6 +1260,9 @@ void munmapForLinker (void *addr, size_t bytes, const char *caller) */ void mmapForLinkerMarkExecutable(void *start, size_t len) { + if (len == 0) { + return; + } IF_DEBUG(linker, debugBelch("mmapForLinkerMarkExecutable: protecting %" FMT_Word " bytes starting at %p\n", (W_)len, start));