/** * Test that the server errors when given an invalid regex. */ (function() { const coll = db.regex_error; coll.drop(); // Run some invalid regexes. assert.commandFailedWithCode(coll.runCommand("find", {filter: {a: {$regex: "[)"}}}), 51091); assert.commandFailedWithCode(coll.runCommand("find", {filter: {a: {$regex: "ab\0c"}}}), ErrorCodes.BadValue); assert.commandFailedWithCode( coll.runCommand("find", {filter: {a: {$regex: "ab", $options: "\0i"}}}), ErrorCodes.BadValue); // SERVER-58705: Should fail without a memory leak assert.commandFailedWithCode(coll.runCommand("find", { filter: { a: { $regex: "(?JJJ)>?W((?!)||(?W!| P(?!) C(?!)||(?!)|;|(?W!| P(?!) C(?!)||(?!aR(?!aR)|(?!?!)|(?W!| P(?!) C(?!)||(?!aR)|(?!?!)||(?)|(?!6]|P(?!)|(?!?!);|(?W!| P(?!) C(?!)||(?!aR|(?!?!);|(?W!) (?!)||(?)|(?||(?W!| P(?!) C(?!)||(?!aR(?!aR)|(?!?!);|(?W(?!) C(?!)||(?!aR)|(?|1|t(?)(?!??!:aW ) C(?!)||(?!aR)|(?!?!|(?W!| P(?!) C(?!)||(?!aR)|(?!(?)(?!:aW ) C(?!)|;|(?W!| P(?!) C(?!)||(?!aR(?!aR)|(?!?!);|(?W!| P(?!) C(?!)||(?!aR(?!aR)|(?!?!)|(?W!| P(?!) C(?!)||(?!aR)|(?!?!)||(?)|(?!2]|P(?!)|C(?!()|(?!?!);|(?W!| P(?!) C(?!)||(?!aR|(?!?!);|(?W!) __P(?!-||(?)|(?||(?W!| P(?!) C(?!)||(?!aR(?!aR)|(?!?!);|(?W(?!) C(?!)||(?!aR)|(?|1|t(?)(?!??!|(?)|(?!3]|P(?!)|C(?!)||(?!aR)|(?!?!);|(?W!| P(?!) C(?!)|;|(?W!| P(?!) C(?!)||(?!aR(?!aR)|(?! m);|(?W!| P(?!) C(?!)||(?!aR)|(?!?!)||(?)|(?!6]|P(?!)|C(?!()(?!?!);|(?W!| P(?!) C(?!)||(?!?!);|(?W!) !)||(?)|(?!6]|P(?!)|(?!?!);|(?W!| P(?!) C(?!)||(?!aR|(?!?!);|(?W!) (?!)||(?)|(?||(?W!| P(?!) C(?!)||(?!aR(?!aR)|(?!?!);|(?W(?!) C(?!)||(?!aR)|(?|1|t(?)(?!??<__P(?!||(?)|(?||(?!?<" } } }), 51091); })();