diff options
| author | Sara Golemon <sara.golemon@mongodb.com> | 2019-07-02 15:37:23 +0000 |
|---|---|---|
| committer | Sara Golemon <sara.golemon@mongodb.com> | 2019-07-03 20:20:02 +0000 |
| commit | f8cdf774a81b3af8825ac76eaebef1fd48183b5a (patch) | |
| tree | 11f658690c81c7f946748c068717e97c52781ff8 /src/mongo/db/server_options_helpers.cpp | |
| parent | 8071e24f0f7a4fa83015daa59d828c11c246423c (diff) | |
| download | mongo-f8cdf774a81b3af8825ac76eaebef1fd48183b5a.tar.gz | |
SERVER-41903 Validate server parameter names during config validation
Diffstat (limited to 'src/mongo/db/server_options_helpers.cpp')
| -rw-r--r-- | src/mongo/db/server_options_helpers.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mongo/db/server_options_helpers.cpp b/src/mongo/db/server_options_helpers.cpp index bc0a1eddc04..9e06c0bc77c 100644 --- a/src/mongo/db/server_options_helpers.cpp +++ b/src/mongo/db/server_options_helpers.cpp @@ -46,6 +46,7 @@ #include "mongo/bson/util/builder.h" #include "mongo/config.h" #include "mongo/db/server_options.h" +#include "mongo/idl/server_parameter.h" #include "mongo/logger/log_component.h" #include "mongo/logger/message_event_utf8_encoder.h" #include "mongo/transport/message_compressor_registry.h" @@ -150,6 +151,22 @@ Status validateBaseOptions(const moe::Environment& params) { // Deregister test-only parameters. ServerParameterSet::getGlobal()->disableTestParameters(); } + + // Must come after registerAllFailPointsAsServerParameters() above. + const auto& spMap = ServerParameterSet::getGlobal()->getMap(); + for (const auto setParam : parameters) { + const auto it = spMap.find(setParam.first); + + if (it == spMap.end()) { + return {ErrorCodes::BadValue, + str::stream() << "Unknown --setParameter '" << setParam.first << "'"}; + } + if (!enableTestCommandsValue && it->second->isTestOnly()) { + return {ErrorCodes::BadValue, + str::stream() << "--setParameter '" << setParam.first + << "' only available when used with 'enableTestCommands'"}; + } + } } return Status::OK(); |
