diff options
author | Adam Midvidy <amidvidy@gmail.com> | 2015-11-06 11:46:05 -0500 |
---|---|---|
committer | Adam Midvidy <amidvidy@gmail.com> | 2015-11-10 15:21:44 -0500 |
commit | e001158d2da317ae36030cf4919ab8ebb9bdf8b2 (patch) | |
tree | 90c7ba512ee748caf911f2cfe885cba995dfc1f6 /src/mongo/bson/bsonobj.cpp | |
parent | 47f20b624ea81232b9c30d69f1b4f982891494dc (diff) | |
download | mongo-e001158d2da317ae36030cf4919ab8ebb9bdf8b2.tar.gz |
SERVER-20609 make BSON validation inlineable
Diffstat (limited to 'src/mongo/bson/bsonobj.cpp')
-rw-r--r-- | src/mongo/bson/bsonobj.cpp | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/src/mongo/bson/bsonobj.cpp b/src/mongo/bson/bsonobj.cpp index 2cd2ef64bde..d1fd73ad43c 100644 --- a/src/mongo/bson/bsonobj.cpp +++ b/src/mongo/bson/bsonobj.cpp @@ -791,50 +791,6 @@ void BSONObj::toString(StringBuilder& s, bool isArray, bool full, int depth) con s << (isArray ? " ]" : " }"); } -Status DataType::Handler<BSONObj>::load( - BSONObj* bson, const char* ptr, size_t length, size_t* advanced, std::ptrdiff_t debug_offset) { - auto len = ConstDataRange(ptr, ptr + length).read<LittleEndian<uint32_t>>(); - - if (!len.isOK()) { - mongoutils::str::stream ss; - ss << "buffer size too small to read length at offset: " << debug_offset; - return Status(ErrorCodes::InvalidBSON, ss); - } - - if (len.getValue() > length) { - mongoutils::str::stream ss; - ss << "length (" << len.getValue() << ") greater than buffer size (" << length - << ") at offset: " << debug_offset; - return Status(ErrorCodes::InvalidBSON, ss); - } - - if (len.getValue() < BSONObj::kMinBSONLength) { - mongoutils::str::stream ss; - ss << "Invalid bson length (" << len.getValue() << ") at offset: " << debug_offset; - return Status(ErrorCodes::InvalidBSON, ss); - } - - try { - BSONObj temp(ptr); - - if (bson) { - *bson = std::move(temp); - } - } catch (...) { - auto status = exceptionToStatus(); - mongoutils::str::stream ss; - ss << status.reason() << " at offset: " << debug_offset; - - return Status(status.code(), ss); - } - - if (advanced) { - *advanced = len.getValue(); - } - - return Status::OK(); -} - Status DataType::Handler<BSONObj>::store( const BSONObj& bson, char* ptr, size_t length, size_t* advanced, std::ptrdiff_t debug_offset) { if (bson.objsize() > static_cast<int>(length)) { |