Skip to content

www/node(20|21): disable mprotect

0x1eef requested to merge 0x1eef/ports:nodejs into hardenedbsd/main

Earlier port versions (eg node18) disable mprotect already, and the node executable was unusable for me without disabling mprotect on node v20.9.0:

% node

 1: 0x9fa0e466b5 node::NodePlatform::GetPageAllocator() [/usr/local/bin/node]
 2: 0x9fa1bdd05f V8_Fatal(char const*, ...) [/usr/local/bin/node]
 3: 0x9fa1be903f v8::base::OS::SetPermissions(void*, unsigned long, v8::base::OS::MemoryPermission) [/usr/local/bin/node]
 4: 0x9fa118da37 v8::internal::CodeRange::RemapEmbeddedBuiltins(v8::internal::Isolate*, unsigned char const*, unsigned long) [/usr/local/bin/node]
 5: 0x9fa115ddec v8::internal::Isolate::MaybeRemapEmbeddedBuiltinsIntoCodeRange() [/usr/local/bin/node]
 6: 0x9fa115e834 v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) [/usr/local/bin/node]
 7: 0x9fa115f679 v8::internal::Isolate::InitWithSnapshot(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) [/usr/local/bin/node]
 8: 0x9fa16bf4dd v8::internal::Snapshot::Initialize(v8::internal::Isolate*) [/usr/local/bin/node]
 9: 0x9fa0ff99d5 v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) [/usr/local/bin/node]
10: 0x9fa0cafa8f node::NewIsolate(v8::Isolate::CreateParams*, uv_loop_s*, node::MultiIsolatePlatform*, node::SnapshotData const*, node::IsolateSettings const&) [/usr/local/bin/node]
11: 0x9fa0e141d2 node::NodeMainInstance::NodeMainInstance(node::SnapshotData const*, uv_loop_s*, node::MultiIsolatePlatform*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >> > const&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >> > const&) [/usr/local/bin/node]

Merge request reports