diff options
author | Steven Bennetts <steve@lindenlab.com> | 2007-01-17 23:02:00 +0000 |
---|---|---|
committer | Steven Bennetts <steve@lindenlab.com> | 2007-01-17 23:02:00 +0000 |
commit | 71d28bdbf0baab9302c8f458e3bdbcfc60d656d4 (patch) | |
tree | 19f051897838d5a75e5ce1e776bb52a330173171 /indra/llmessage/message.cpp | |
parent | fc664e93e62645fc6e9659664351e77f3c4b374f (diff) |
merge release@56803 release-candidate@56833
Diffstat (limited to 'indra/llmessage/message.cpp')
-rw-r--r-- | indra/llmessage/message.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/indra/llmessage/message.cpp b/indra/llmessage/message.cpp index 99cfc7439b..73cda52fa0 100644 --- a/indra/llmessage/message.cpp +++ b/indra/llmessage/message.cpp @@ -4451,7 +4451,13 @@ void process_create_trusted_circuit(LLMessageSystem *msg, void **) } char their_digest[MD5HEX_STR_SIZE]; - msg->getBinaryDataFast(_PREHASH_DataBlock, _PREHASH_Digest, their_digest, 32); + S32 size = msg->getSizeFast(_PREHASH_DataBlock, _PREHASH_Digest); + if(size != MD5HEX_STR_BYTES) + { + // ignore requests which pack the wrong amount of data. + return; + } + msg->getBinaryDataFast(_PREHASH_DataBlock, _PREHASH_Digest, their_digest, MD5HEX_STR_BYTES); their_digest[MD5HEX_STR_SIZE - 1] = '\0'; if(msg->isMatchingDigestForWindowAndUUIDs(their_digest, TRUST_TIME_WINDOW, local_id, remote_id)) { |