1
0
mirror of https://github.com/janet-lang/janet synced 2026-05-07 14:11:28 +00:00

Fix mmap return value check (#1745)

This commit is contained in:
jsks
2026-05-02 00:49:49 +02:00
committed by GitHub
parent d9b1d711ea
commit 27807d4456

View File

@@ -1628,7 +1628,11 @@ JANET_CORE_FN(cfun_ffi_jitfn,
fn->size = 0;
#ifdef JANET_WINDOWS
void *ptr = VirtualAlloc(NULL, alloc_size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
#elif defined(MAP_ANONYMOUS)
if (!ptr) {
janet_panic("failed to allocate writable memory");
}
#else
#ifdef MAP_ANONYMOUS
void *ptr = mmap(0, alloc_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
#elif defined(MAP_ANON)
/* macos doesn't have MAP_ANONYMOUS */
@@ -1638,9 +1642,10 @@ JANET_CORE_FN(cfun_ffi_jitfn,
/* #define MAP_ANONYMOUS 0x20 should work, though. */
void *ptr = mmap(0, alloc_size, PROT_READ | PROT_WRITE, MAP_PRIVATE, -1, 0);
#endif
if (!ptr) {
if (ptr == MAP_FAILED) {
janet_panic("failed to memory map writable memory");
}
#endif
memcpy(ptr, bytes.bytes, bytes.len);
#ifdef JANET_WINDOWS
DWORD old = 0;