diff options
author | Mathias Stearn <mathias@10gen.com> | 2017-07-24 14:53:55 -0400 |
---|---|---|
committer | Mathias Stearn <mathias@10gen.com> | 2017-08-17 22:13:09 -0400 |
commit | 5f85627971603bf9f5c832f9d4ca2808b31b0efd (patch) | |
tree | 57cb296a3e55f20722e19bc0d80e1ad2b1f8fb9a /src/mongo/rpc | |
parent | 5aa60782cebed045a316b5cd6706be726178ce09 (diff) | |
download | mongo-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.cpp | 9 | ||||
-rw-r--r-- | src/mongo/rpc/unique_message.h | 2 |
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; |