From e2e6fe955ad56673c53d50719e4667847bbb1b5a Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 15 Dec 2024 15:49:18 +0000 Subject: [PATCH] Don't define MPROTECT_VDB for SerenityOS This causes a null pointer dereference crash when building without SMALL_CONFIG. See: https://github.com/ivmai/bdwgc/issues/688 --- include/private/gcconfig.h | 1 - os_dep.c | 6 ++---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/include/private/gcconfig.h b/include/private/gcconfig.h index 06ce9c736..030a32c2b 100644 --- a/include/private/gcconfig.h +++ b/include/private/gcconfig.h @@ -1083,7 +1083,6 @@ extern int etext[], _end[]; # define DATASTART PTR_ALIGN_UP((ptr_t)etext, 0x1000) # define DATAEND ((ptr_t)_end) # define DYNAMIC_LOADING -# define MPROTECT_VDB # define USE_MMAP_ANON #endif /* SERENITY */ diff --git a/os_dep.c b/os_dep.c index c5f9e61be..4f8ede626 100644 --- a/os_dep.c +++ b/os_dep.c @@ -3259,8 +3259,7 @@ STATIC mach_port_t GC_task_self = 0; # elif !defined(USE_WINALLOC) # include -# if !defined(AIX) && !defined(CYGWIN32) && !defined(HAIKU) \ - && !defined(SERENITY) +# if !defined(AIX) && !defined(CYGWIN32) && !defined(HAIKU) # include # endif @@ -3377,8 +3376,7 @@ is_header_found_async(const void *p) # elif defined(IRIX5) # define CODE_OK (si->si_code == EACCES) # elif defined(AIX) || defined(COSMO) || defined(CYGWIN32) \ - || defined(HAIKU) || defined(HURD) || defined(LINUX) \ - || defined(SERENITY) + || defined(HAIKU) || defined(HURD) || defined(LINUX) /* Linux: Empirically c.trapno == 14, on IA32, but is that useful? */ /* Should probably consider alignment issues on other architectures. */ # define CODE_OK TRUE