Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2020-05-16 12:39:53 +0300
committerRuben Bridgewater <ruben@bridgewater.de>2020-05-23 19:59:44 +0300
commitd85a9332508bbc39ddc011e9e5a1fd5f71a985bb (patch)
tree708c180d1d748b87aa90b88858db72c34a3461ea /src/node_process_events.cc
parent8ddb6aa88694f4a5a2a05a46f66508c683b850d2 (diff)
wasi,worker: handle termination exception
Be careful when emitting the 'beforeExit' event. It's not allowed to call into the runtime when a termination exception is pending. Fixes: https://github.com/nodejs/node/issues/33377 PR-URL: https://github.com/nodejs/node/pull/33386 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'src/node_process_events.cc')
-rw-r--r--src/node_process_events.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/node_process_events.cc b/src/node_process_events.cc
index d192ef19b7a..1b902949e26 100644
--- a/src/node_process_events.cc
+++ b/src/node_process_events.cc
@@ -24,10 +24,14 @@ MaybeLocal<Value> ProcessEmit(Environment* env,
const char* event,
Local<Value> message) {
// Send message to enable debug in cluster workers
- Local<Object> process = env->process_object();
Isolate* isolate = env->isolate();
- Local<Value> argv[] = {OneByteString(isolate, event), message};
+ Local<String> event_string;
+ if (!String::NewFromOneByte(isolate, reinterpret_cast<const uint8_t*>(event))
+ .ToLocal(&event_string)) return MaybeLocal<Value>();
+
+ Local<Object> process = env->process_object();
+ Local<Value> argv[] = {event_string, message};
return MakeCallback(isolate, process, "emit", arraysize(argv), argv, {0, 0});
}