diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2020-08-22 11:40:05 +0300 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2020-08-24 17:32:30 +0300 |
commit | b8ab49fc53b4d6c5bbae9a639103da058beaa84a (patch) | |
tree | a41c64db13c0599219ad573f8228ec84b054e4c6 | |
parent | c3d337db5d4535840cd4dfaf438d6062eec6d60c (diff) |
src: fix abort on uv_loop_init() failure
Fixes: https://github.com/nodejs/node/issues/34855
PR-URL: https://github.com/nodejs/node/pull/34874
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
-rw-r--r-- | src/spawn_sync.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/spawn_sync.cc b/src/spawn_sync.cc index d7d06be34bd..1141aceae98 100644 --- a/src/spawn_sync.cc +++ b/src/spawn_sync.cc @@ -457,9 +457,17 @@ Maybe<bool> SyncProcessRunner::TryInitializeAndRunLoop(Local<Value> options) { SetError(UV_ENOMEM); return Just(false); } - CHECK_EQ(uv_loop_init(uv_loop_), 0); + + r = uv_loop_init(uv_loop_); + if (r < 0) { + delete uv_loop_; + uv_loop_ = nullptr; + SetError(r); + return Just(false); + } if (!ParseOptions(options).To(&r)) return Nothing<bool>(); + if (r < 0) { SetError(r); return Just(false); |