summaryrefslogtreecommitdiff
path: root/src/mongo/scripting/engine_v8.cpp
diff options
context:
space:
mode:
authorMathias Stearn <mathias@10gen.com>2013-11-20 16:28:32 -0500
committerMathias Stearn <mathias@10gen.com>2013-11-22 14:50:03 -0500
commit7669448d1a41e0e9ef6237926c0173949b5d9868 (patch)
treea864f84f3a8779538ecb2f7d19c2070bc4ecaaa6 /src/mongo/scripting/engine_v8.cpp
parenta68075e50322910b018815ade7f7c77887cc488b (diff)
downloadmongo-7669448d1a41e0e9ef6237926c0173949b5d9868.tar.gz
SERVER-11781 Don't crash when converting deeply nested or cyclical JS objects to BSON
Diffstat (limited to 'src/mongo/scripting/engine_v8.cpp')
-rw-r--r--src/mongo/scripting/engine_v8.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/scripting/engine_v8.cpp b/src/mongo/scripting/engine_v8.cpp
index b51b28a38ff..6eba9ce13b6 100644
--- a/src/mongo/scripting/engine_v8.cpp
+++ b/src/mongo/scripting/engine_v8.cpp
@@ -1565,6 +1565,10 @@ namespace mongo {
void V8Scope::v8ToMongoElement(BSONObjBuilder & b, const StringData& sname,
v8::Handle<v8::Value> value, int depth,
BSONObj* originalParent) {
+ uassert(17279,
+ str::stream() << "Exceeded depth limit of " << objectDepthLimit
+ << " when converting js object to BSON. Do you have a cycle?",
+ depth < objectDepthLimit);
// Null char should be at the end, not in the string
uassert(16985,