summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Reams <jbreams@mongodb.com>2017-09-06 17:01:26 -0400
committerJonathan Reams <jbreams@mongodb.com>2017-09-08 16:42:21 -0400
commit8c0fd02d2dc44e3addca3e4ea9dd7292ea8b3e6f (patch)
tree7b2f68160ffc5895d257bfb79b84aed5da5be554
parente45f7ecf6b656327a909b836674987b2052ffa76 (diff)
downloadmongo-8c0fd02d2dc44e3addca3e4ea9dd7292ea8b3e6f.tar.gz
SERVER-30943 Check return value of JS_Enumerate in ObjectWrapper/ValueWriter
-rw-r--r--src/mongo/scripting/mozjs/objectwrapper.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/scripting/mozjs/objectwrapper.cpp b/src/mongo/scripting/mozjs/objectwrapper.cpp
index 77ea9a1eca8..8781f792484 100644
--- a/src/mongo/scripting/mozjs/objectwrapper.cpp
+++ b/src/mongo/scripting/mozjs/objectwrapper.cpp
@@ -564,7 +564,12 @@ ObjectWrapper::WriteFieldRecursionFrame::WriteFieldRecursionFrame(JSContext* cx,
ids.infallibleAppend(rid);
}
} else {
- JS::AutoIdArray rids(cx, JS_Enumerate(cx, thisv));
+ auto ridArrayPtr = JS_Enumerate(cx, thisv);
+ if (!ridArrayPtr) {
+ throwCurrentJSException(
+ cx, ErrorCodes::JSInterpreterFailure, "Failure to enumerate object");
+ }
+ JS::AutoIdArray rids(cx, ridArrayPtr);
if (!ids.reserve(rids.length())) {
throwCurrentJSException(