summaryrefslogtreecommitdiff
path: root/src/mongo/scripting/engine_v8.cpp
diff options
context:
space:
mode:
authorScott Hernandez <scotthernandez@gmail.com>2013-07-24 16:03:07 -0400
committerScott Hernandez <scotthernandez@gmail.com>2013-07-24 16:03:13 -0400
commit3ef5807b169f033b1e2d4db1a0d8e2f46a7c1d13 (patch)
tree4e6f773d2ca0eb170f853c4cac887b2cd0b3deb5 /src/mongo/scripting/engine_v8.cpp
parentb46e9909da93aeef4ba49c9923f023e6a4887d0e (diff)
downloadmongo-3ef5807b169f033b1e2d4db1a0d8e2f46a7c1d13.tar.gz
SERVER-10313: uassert if null char in js field names
Diffstat (limited to 'src/mongo/scripting/engine_v8.cpp')
-rw-r--r--src/mongo/scripting/engine_v8.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/scripting/engine_v8.cpp b/src/mongo/scripting/engine_v8.cpp
index 527c9b0fd5c..36d246f307c 100644
--- a/src/mongo/scripting/engine_v8.cpp
+++ b/src/mongo/scripting/engine_v8.cpp
@@ -1575,6 +1575,14 @@ namespace mongo {
void V8Scope::v8ToMongoElement(BSONObjBuilder & b, const StringData& sname,
v8::Handle<v8::Value> value, int depth,
BSONObj* originalParent) {
+
+ // Null char should be at the end, not in the string
+ uassert(16981,
+ str::stream() << "JavaScript property (name) contains a null char "
+ << "which is not allowed in BSON. "
+ << originalParent->jsonString(),
+ (string::npos == sname.find('\0')) );
+
if (value->IsString()) {
b.append(sname, V8String(value));
return;