summaryrefslogtreecommitdiff
path: root/jstests/aggregation
diff options
context:
space:
mode:
authorDrew Paroski <drew.paroski@mongodb.com>2020-07-15 00:32:39 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-08-04 16:55:46 +0000
commit287b872de62d23399af3b6a968337f21107b5119 (patch)
tree2616ba3d0909e0f745be7d839868fac50168558d /jstests/aggregation
parent48bcef9c841af51a146f789c0ec92cf7fa6b4a6e (diff)
downloadmongo-287b872de62d23399af3b6a968337f21107b5119.tar.gz
SERVER-49404 Enforce additional checks in $arrayToObject
(cherry picked from commit 1772b9a0393b55e6a280a35e8f0a1f75c014f301)
Diffstat (limited to 'jstests/aggregation')
-rw-r--r--jstests/aggregation/expressions/arrayToObject.js14
1 files changed, 14 insertions, 0 deletions
diff --git a/jstests/aggregation/expressions/arrayToObject.js b/jstests/aggregation/expressions/arrayToObject.js
index 409bd8aee1f..c5f3ec358c2 100644
--- a/jstests/aggregation/expressions/arrayToObject.js
+++ b/jstests/aggregation/expressions/arrayToObject.js
@@ -72,4 +72,18 @@ assertPipelineErrors([{k: null, v: "nullKey"}], 40394);
assertPipelineErrors([{k: undefined, v: "undefinedKey"}], 40394);
assertPipelineErrors([{y: "ignored", k: "item", v: "pear"}], 40392);
assertPipelineErrors(NaN, 40386);
+
+// Check that $arrayToObject produces an error when the key contains a null byte.
+assertErrorCode(
+ coll, [{$replaceWith: {$arrayToObject: {$literal: [["a\0b", "abra cadabra"]]}}}], 4940400);
+assertErrorCode(
+ coll, [{$replaceWith: {$arrayToObject: {$literal: [{k: "a\0b", v: "blah"}]}}}], 4940401);
+assertErrorCode(
+ coll,
+ [{$replaceWith: {$arrayToObject: {$literal: [["a\0b", "abra cadabra"]]}}}, {$out: "output"}],
+ 4940400);
+assertErrorCode(
+ coll,
+ [{$replaceWith: {$arrayToObject: {$literal: [{k: "a\0b", v: "blah"}]}}}, {$out: "output"}],
+ 4940401);
}());