summaryrefslogtreecommitdiff
path: root/src/mongo/bson
diff options
context:
space:
mode:
authorMax Hirschhorn <max.hirschhorn@mongodb.com>2017-03-06 13:16:52 -0500
committerMax Hirschhorn <max.hirschhorn@mongodb.com>2017-03-06 13:16:52 -0500
commite2474a4d0d0fd1ba84d8edd201cf0c2334828c9e (patch)
tree2a154f2687a6e8035cae9fdbe5926baeb2dccd46 /src/mongo/bson
parent3084639dfcd5516e77e5ca2e5909356ecf6c9cd4 (diff)
downloadmongo-e2474a4d0d0fd1ba84d8edd201cf0c2334828c9e.tar.gz
Revert "SERVER-26703 reject commands exceeding the BSON depth limit"
This reverts commit c2b3178e0cae20a24bc9cc39a750bb864def17e3.
Diffstat (limited to 'src/mongo/bson')
-rw-r--r--src/mongo/bson/SConscript9
-rw-r--r--src/mongo/bson/bson_depth.cpp43
-rw-r--r--src/mongo/bson/bson_depth.h56
-rw-r--r--src/mongo/bson/bson_validate.cpp7
4 files changed, 0 insertions, 115 deletions
diff --git a/src/mongo/bson/SConscript b/src/mongo/bson/SConscript
index 639b32680fd..a32f7795da2 100644
--- a/src/mongo/bson/SConscript
+++ b/src/mongo/bson/SConscript
@@ -73,12 +73,3 @@ env.CppUnitTest(
'$BUILD_DIR/mongo/base',
],
)
-
-env.Library(
- target='bson_depth',
- source=[
- 'bson_depth.cpp',
- ],
- LIBDEPS=[
- ],
-)
diff --git a/src/mongo/bson/bson_depth.cpp b/src/mongo/bson/bson_depth.cpp
deleted file mode 100644
index 153d53d85ef..00000000000
--- a/src/mongo/bson/bson_depth.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * Copyright (C) 2017 MongoDB Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * As a special exception, the copyright holders give permission to link the
- * code of portions of this program with the OpenSSL library under certain
- * conditions as described in each individual source file and distribute
- * linked combinations including the program with the OpenSSL library. You
- * must comply with the GNU Affero General Public License in all respects
- * for all of the code used other than as permitted herein. If you modify
- * file(s) with this exception, you may extend this exception to your
- * version of the file(s), but you are not obligated to do so. If you do not
- * wish to do so, delete this exception statement from your version. If you
- * delete this exception statement from all source files in the program,
- * then also delete it in the license file.
- */
-
-#include "mongo/platform/basic.h"
-
-#include "mongo/bson/bson_depth.h"
-
-namespace mongo {
-constexpr std::int32_t BSONDepth::kDefaultMaxAllowableDepth;
-constexpr std::int32_t BSONDepth::kBSONDepthParameterFloor;
-constexpr std::int32_t BSONDepth::kBSONDepthParameterCeiling;
-
-std::int32_t BSONDepth::maxAllowableDepth = BSONDepth::kDefaultMaxAllowableDepth;
-
-std::uint32_t BSONDepth::getMaxAllowableDepth() {
- return static_cast<std::uint32_t>(BSONDepth::maxAllowableDepth);
-}
-} // namespace mongo
diff --git a/src/mongo/bson/bson_depth.h b/src/mongo/bson/bson_depth.h
deleted file mode 100644
index ef8ffc3631d..00000000000
--- a/src/mongo/bson/bson_depth.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Copyright (C) 2017 MongoDB Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- * As a special exception, the copyright holders give permission to link the
- * code of portions of this program with the OpenSSL library under certain
- * conditions as described in each individual source file and distribute
- * linked combinations including the program with the OpenSSL library. You
- * must comply with the GNU Affero General Public License in all respects
- * for all of the code used other than as permitted herein. If you modify
- * file(s) with this exception, you may extend this exception to your
- * version of the file(s), but you are not obligated to do so. If you do not
- * wish to do so, delete this exception statement from your version. If you
- * delete this exception statement from all source files in the program,
- * then also delete it in the license file.
- */
-
-#pragma once
-
-#include <cstdint>
-
-namespace mongo {
-/**
- * Controls the maximum BSON depth tolerated by the server.
- */
-struct BSONDepth {
- // The default BSON depth nesting limit.
- static constexpr std::int32_t kDefaultMaxAllowableDepth = 200;
-
- // The minimum allowable value for the BSON depth parameter.
- static constexpr std::int32_t kBSONDepthParameterFloor = 5;
-
- // The maximum allowable value for the BSON depth parameter.
- static constexpr std::int32_t kBSONDepthParameterCeiling = 1000;
-
- // The depth of BSON accepted by the server. Configurable via the 'maxBSONDepth' server
- // parameter.
- static std::int32_t maxAllowableDepth;
-
- /**
- * Returns the maximum allowable BSON depth as an unsigned integer.
- */
- static std::uint32_t getMaxAllowableDepth();
-};
-} // namespace mongo
diff --git a/src/mongo/bson/bson_validate.cpp b/src/mongo/bson/bson_validate.cpp
index c2d97a6496e..8a11597a45e 100644
--- a/src/mongo/bson/bson_validate.cpp
+++ b/src/mongo/bson/bson_validate.cpp
@@ -32,7 +32,6 @@
#include <vector>
#include "mongo/base/data_view.h"
-#include "mongo/bson/bson_depth.h"
#include "mongo/bson/bson_validate.h"
#include "mongo/bson/oid.h"
#include "mongo/db/jsobj.h"
@@ -328,12 +327,6 @@ Status validateBSONIterative(Buffer* buffer) {
while (state != ValidationState::Done) {
switch (state) {
case ValidationState::BeginObj:
- if (frames.size() > BSONDepth::getMaxAllowableDepth()) {
- return {ErrorCodes::Overflow,
- str::stream() << "BSONObj exceeded maximum nested object depth: "
- << BSONDepth::getMaxAllowableDepth()};
- }
-
frames.push_back(ValidationObjectFrame());
curr = &frames.back();
curr->setStartPosition(buffer->position());