summaryrefslogtreecommitdiff
path: root/src/mongo/transport/message_compressor_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/transport/message_compressor_manager.cpp')
-rw-r--r--src/mongo/transport/message_compressor_manager.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/transport/message_compressor_manager.cpp b/src/mongo/transport/message_compressor_manager.cpp
index a78667c31b6..0ccd856ad23 100644
--- a/src/mongo/transport/message_compressor_manager.cpp
+++ b/src/mongo/transport/message_compressor_manager.cpp
@@ -154,6 +154,10 @@ StatusWith<Message> MessageCompressorManager::decompressMessage(const Message& m
LOG(3) << "Decompressing message with " << compressor->getName();
+ if (compressionHeader.uncompressedSize < 0) {
+ return {ErrorCodes::BadValue, "Decompressed message would be negative in size"};
+ }
+
size_t bufferSize = compressionHeader.uncompressedSize + MsgData::MsgDataHeaderSize;
if (bufferSize > MaxMessageSizeBytes) {
return {ErrorCodes::BadValue,