summaryrefslogtreecommitdiff
path: root/src/mongo/db/write_concern_options.cpp
diff options
context:
space:
mode:
authorMatt Kneiser <matt.kneiser@mongodb.com>2022-01-13 00:22:12 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-01-13 06:29:13 +0000
commitfd6b2a875f8942a4ba7fea916b4c52a913e14f49 (patch)
tree8e18dd580f8d03a42f27ed7af357cae38a2ff745 /src/mongo/db/write_concern_options.cpp
parent47c77eedf3bb0b4305f2ca1d8e362b27d599008f (diff)
downloadmongo-fd6b2a875f8942a4ba7fea916b4c52a913e14f49.tar.gz
SERVER-27209 Eliminate dangerous BSONElement string extraction methods
- Fix: Change return type of BSONObj::getStringField to include size (StringData vs. char*). A char* only contains the data with an ending NULL termination. Whereas a StringData contains data + size so caller knows how to interpret data if there are embedded NULLs. - Cleanup: Remove old tag - CachedSizeTag - that disambiguated BSONElement ctors. A dangling reference to 'maxLen' in a comment led me to this historical issue. $ git log -S'maxLen' -- src/mongo/bson/bsonelement.h commit 0d38ef5 Author: Mathias Stearn mathias@10gen.com Date: Tue Dec 19 14:23:08 2017 -0500 SERVER-32302 Compute BSONElement sizes eagerly - Test: Add tests for NULL bytes being returned by getStringField - $ ninja -j400 +bson_obj_test - Cleanup: Move BSONElement::valuestr() from public to private - Cleanup: Remove BSONElement::valuestrsafe() - Cleanup: Remove all external callers of valuestr/valuestrsafe and cleanup their callsites with better alternatives. - Cleanup: Make multi-line BSONElement & BSONObj public API comments conform to style guidelines - Nit: Fix spelling in a comment
Diffstat (limited to 'src/mongo/db/write_concern_options.cpp')
-rw-r--r--src/mongo/db/write_concern_options.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mongo/db/write_concern_options.cpp b/src/mongo/db/write_concern_options.cpp
index baf56a1a669..53883d0cba0 100644
--- a/src/mongo/db/write_concern_options.cpp
+++ b/src/mongo/db/write_concern_options.cpp
@@ -179,7 +179,7 @@ StatusWith<WriteConcernOptions> WriteConcernOptions::parse(const BSONObj& obj) {
writeConcern.notExplicitWValue = false;
} else if (wEl.type() == String) {
writeConcern.wNumNodes = 0;
- writeConcern.wMode = wEl.valuestrsafe();
+ writeConcern.wMode = wEl.str();
writeConcern.notExplicitWValue = false;
} else if (wEl.eoo() || wEl.type() == jstNULL || wEl.type() == Undefined) {
writeConcern.wNumNodes = 1;