OSAllocatorPosix::tryReserveUncommittedAligned() should not use PROT_NONE on non-linux platforms. Only on linux PROT_NONE is used for deccommitted pages. That is, protection flags are set on commit() only on Linux. https://github.com/WebKit/WebKit/blob/9067a50/Source/WTF/wtf/posix/OSAllocatorPOSIX.cpp#L228 However in tryReserveUncommittedAligned() PROT_NONE is used for platforms other than #if PLATFORM(MAC) || USE(APPLE_INTERNAL_SDK), which may result in protection faults because appropriate flags won't be set on commit().
(In reply to Yoshiaki Jitsukawa from comment #0) > OSAllocatorPosix::tryReserveUncommittedAligned() should not use PROT_NONE on > non-linux platforms. > > Only on linux PROT_NONE is used for deccommitted pages. That is, protection > flags are set on commit() only on Linux. > https://github.com/WebKit/WebKit/blob/9067a50/Source/WTF/wtf/posix/ > OSAllocatorPOSIX.cpp#L228 > > However in tryReserveUncommittedAligned() PROT_NONE is used for platforms > other than > #if PLATFORM(MAC) || USE(APPLE_INTERNAL_SDK), > which may result in protection faults because appropriate flags won't be set > on commit(). Linux implementation is so much depends on Linux memory management way and very different from other port.
<rdar://problem/89317522>