head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.8 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.6 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.4 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.2 pkgsrc-2025Q2-base:1.1; locks; strict; comment @// @; 1.1 date 2025.04.14.15.33.04; author nia; state Exp; branches; next ; commitid SdmOsZfrH2wk72RF; desc @@ 1.1 log @seamonkey: Update to 2.53.20. Large scale cleanup of package. - Local change: Removed all old patches. - Additional important security fixes up to Current Firefox 115.19 and Thunderbird 115.19 ESR plus many enhancements have been backported. - Support for all NPAPI plugins like Flash, Java and Silverlight has been removed. See release notes: https://www.seamonkey-project.org/releases/seamonkey2.53.20/ @ text @$NetBSD$ PaX MPROTECT support for NetBSD. --- js/src/jit/ProcessExecutableMemory.cpp.orig 2024-12-13 00:29:16.000000000 +0000 +++ js/src/jit/ProcessExecutableMemory.cpp @@@@ -292,8 +292,13 @@@@ ReserveProcessExecutableMemory(size_t by // Note that randomAddr is just a hint: if the address is not available // mmap will pick a different address. void* randomAddr = ComputeRandomAllocationAddress(); +#ifdef PROT_MPROTECT + void* p = MozTaggedAnonymousMmap(randomAddr, bytes, PROT_NONE | PROT_MPROTECT(PROT_READ | PROT_WRITE | PROT_EXEC), MAP_PRIVATE | MAP_ANON, + -1, 0, "js-executable-memory"); +#else void* p = MozTaggedAnonymousMmap(randomAddr, bytes, PROT_NONE, MAP_PRIVATE | MAP_ANON, -1, 0, "js-executable-memory"); +#endif if (p == MAP_FAILED) return nullptr; return p; @@@@ -336,9 +341,15 @@@@ ProtectionSettingToFlags(ProtectionSetti static MOZ_MUST_USE bool CommitPages(void* addr, size_t bytes, ProtectionSetting protection) { +#ifdef PROT_MPROTECT + void* p = MozTaggedAnonymousMmap(addr, bytes, ProtectionSettingToFlags(protection) | PROT_MPROTECT(PROT_READ | PROT_WRITE | PROT_EXEC), + MAP_FIXED | MAP_PRIVATE | MAP_ANON, + -1, 0, "js-executable-memory"); +#else void* p = MozTaggedAnonymousMmap(addr, bytes, ProtectionSettingToFlags(protection), MAP_FIXED | MAP_PRIVATE | MAP_ANON, -1, 0, "js-executable-memory"); +#endif if (p == MAP_FAILED) return false; MOZ_RELEASE_ASSERT(p == addr); @@@@ -350,9 +361,15 @@@@ DecommitPages(void* addr, size_t bytes) { // Use mmap with MAP_FIXED and PROT_NONE. Inspired by jemalloc's // pages_decommit. +#ifdef PROT_MPROTECT + void* p = MozTaggedAnonymousMmap(addr, bytes, PROT_NONE | PROT_MPROTECT(PROT_READ | PROT_WRITE | PROT_EXEC), + MAP_FIXED | MAP_PRIVATE | MAP_ANON, + -1, 0, "js-executable-memory"); +#else void* p = MozTaggedAnonymousMmap(addr, bytes, PROT_NONE, MAP_FIXED | MAP_PRIVATE | MAP_ANON, -1, 0, "js-executable-memory"); +#endif MOZ_RELEASE_ASSERT(addr == p); } #endif @