653d0f009e
* chore: bump node in DEPS to v20.13.0 * crypto: enable NODE_EXTRA_CA_CERTS with BoringSSL https://github.com/nodejs/node/pull/52217 * test: skip test for dynamically linked OpenSSL https://github.com/nodejs/node/pull/52542 * lib, url: add a `windows` option to path parsing https://github.com/nodejs/node/pull/52509 * src: use dedicated routine to compile function for builtin CJS loader https://github.com/nodejs/node/pull/52016 * test: mark test as flaky https://github.com/nodejs/node/pull/52671 * build,tools: add test-ubsan ci https://github.com/nodejs/node/pull/46297 * src: preload function for Environment https://github.com/nodejs/node/pull/51539 * chore: fixup patch indices * deps: update c-ares to 1.28.1 https://github.com/nodejs/node/pull/52285 * chore: handle updated filenames - https://github.com/nodejs/node/pull/51999 - https://github.com/nodejs/node/pull/51927 * chore: bump node in DEPS to v20.13.1 * events: extract addAbortListener for safe internal use https://github.com/nodejs/node/pull/52081 * module: print location of unsettled top-level await in entry points https://github.com/nodejs/node/pull/51999 * fs: add stacktrace to fs/promises https://github.com/nodejs/node/pull/49849 * chore: update patches --------- Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
38 lines
1.6 KiB
Diff
38 lines
1.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Shelley Vohr <shelley.vohr@gmail.com>
|
|
Date: Thu, 16 Nov 2023 16:48:10 +0100
|
|
Subject: feat: optionally prevent calling V8::EnableWebAssemblyTrapHandler
|
|
|
|
V8::EnableWebAssemblyTrapHandler can be called only once or it will
|
|
hard crash. We need to prevent Node.js calling it in the event it has
|
|
already been called.
|
|
|
|
This should be upstreamed.
|
|
|
|
diff --git a/src/node.cc b/src/node.cc
|
|
index 3e4f1b5d730865fae61f8bfbc58c14c6a59fb33a..7478ef81eb9b275eb5f45b528582e5bbd30e60ec 100644
|
|
--- a/src/node.cc
|
|
+++ b/src/node.cc
|
|
@@ -650,6 +650,7 @@ static void PlatformInit(ProcessInitializationFlags::Flags flags) {
|
|
#endif
|
|
}
|
|
#endif // defined(_WIN32)
|
|
+ if (!(flags & ProcessInitializationFlags::kNoEnableWasmTrapHandler))
|
|
V8::EnableWebAssemblyTrapHandler(false);
|
|
#endif // NODE_USE_V8_WASM_TRAP_HANDLER
|
|
}
|
|
diff --git a/src/node.h b/src/node.h
|
|
index e55256996f2c85b0ae3854cbd1b83ca88a3e22cb..76e2459eceed127e69c686f26fd5bd369b81f1af 100644
|
|
--- a/src/node.h
|
|
+++ b/src/node.h
|
|
@@ -275,6 +275,10 @@ enum Flags : uint32_t {
|
|
kNoInitializeCppgc = 1 << 13,
|
|
// Initialize the process for predictable snapshot generation.
|
|
kGeneratePredictableSnapshot = 1 << 14,
|
|
+ // Do not initialize the Web Assembly trap handler. This is used by
|
|
+ // embedders to account for the case where it may already have been
|
|
+ // initialized - calling it more than once will hard crash.
|
|
+ kNoEnableWasmTrapHandler = 1 << 15,
|
|
|
|
// Emulate the behavior of InitializeNodeWithArgs() when passing
|
|
// a flags argument to the InitializeOncePerProcess() replacement
|