summaryrefslogtreecommitdiff
path: root/src/node_messaging.cc
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2018-12-16 14:34:37 +0100
committerDaniel Bevenius <daniel.bevenius@gmail.com>2018-12-19 05:30:31 +0100
commite1ab457490925ddbf9f234973c4338bd0690acb5 (patch)
tree2937d16f806ea1761760fe54dbd9f42cd7ec1905 /src/node_messaging.cc
parentdbdfc5d656dc05d23a48aeb656454040c20217d8 (diff)
downloadandroid-node-v8-e1ab457490925ddbf9f234973c4338bd0690acb5.tar.gz
android-node-v8-e1ab457490925ddbf9f234973c4338bd0690acb5.tar.bz2
android-node-v8-e1ab457490925ddbf9f234973c4338bd0690acb5.zip
worker: fix nullptr deref after MessagePort deser failure
This would previously always have crashed when deserializing a `MessagePort` fails, because there was always at least one `nullptr` entry in the vector. PR-URL: https://github.com/nodejs/node/pull/25076 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Diffstat (limited to 'src/node_messaging.cc')
-rw-r--r--src/node_messaging.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/node_messaging.cc b/src/node_messaging.cc
index c9b5e32447..ae60187b6f 100644
--- a/src/node_messaging.cc
+++ b/src/node_messaging.cc
@@ -90,7 +90,8 @@ MaybeLocal<Value> Message::Deserialize(Environment* env,
if (ports[i] == nullptr) {
for (MessagePort* port : ports) {
// This will eventually release the MessagePort object itself.
- port->Close();
+ if (port != nullptr)
+ port->Close();
}
return MaybeLocal<Value>();
}