summaryrefslogtreecommitdiff
path: root/src/mongo/rpc
diff options
context:
space:
mode:
authorMathias Stearn <mathias@10gen.com>2017-07-24 14:53:55 -0400
committerMathias Stearn <mathias@10gen.com>2017-08-17 22:13:09 -0400
commit5f85627971603bf9f5c832f9d4ca2808b31b0efd (patch)
tree57cb296a3e55f20722e19bc0d80e1ad2b1f8fb9a /src/mongo/rpc
parent5aa60782cebed045a316b5cd6706be726178ce09 (diff)
downloadmongo-5f85627971603bf9f5c832f9d4ca2808b31b0efd.tar.gz
SERVER-28964 Close connection after seeing invalid OP_MSG flags
Diffstat (limited to 'src/mongo/rpc')
-rw-r--r--src/mongo/rpc/legacy_request.cpp9
-rw-r--r--src/mongo/rpc/unique_message.h2
2 files changed, 10 insertions, 1 deletions
diff --git a/src/mongo/rpc/legacy_request.cpp b/src/mongo/rpc/legacy_request.cpp
index e08684fdca6..1bbd56e8414 100644
--- a/src/mongo/rpc/legacy_request.cpp
+++ b/src/mongo/rpc/legacy_request.cpp
@@ -30,6 +30,7 @@
#include <utility>
+#include "mongo/client/dbclientinterface.h"
#include "mongo/db/dbmessage.h"
#include "mongo/rpc/legacy_request.h"
#include "mongo/rpc/metadata.h"
@@ -43,6 +44,14 @@ OpMsgRequest opMsgRequestFromLegacyRequest(const Message& message) {
QueryMessage qm(dbm);
NamespaceString ns(qm.ns);
+ if (qm.queryOptions & QueryOption_Exhaust) {
+ uasserted(18527,
+ str::stream() << "The 'exhaust' OP_QUERY flag is invalid for commands: "
+ << ns.ns()
+ << " "
+ << qm.query.toString());
+ }
+
uassert(40473,
str::stream() << "Trying to handle namespace " << qm.ns << " as a command",
ns.isCommand());
diff --git a/src/mongo/rpc/unique_message.h b/src/mongo/rpc/unique_message.h
index d214462b70c..dd23729445a 100644
--- a/src/mongo/rpc/unique_message.h
+++ b/src/mongo/rpc/unique_message.h
@@ -46,7 +46,7 @@ class UniqueMessage {
MONGO_DISALLOW_COPYING(UniqueMessage);
public:
- UniqueMessage(Message&& message, std::unique_ptr<MessageViewType> view)
+ UniqueMessage(Message message, std::unique_ptr<MessageViewType> view)
: _message{std::move(message)}, _view{std::move(view)} {}
UniqueMessage(UniqueMessage&&) = default;