Author: tross
Date: Fri Oct 24 08:15:10 2008
New Revision: 707652
URL: http://svn.apache.org/viewvc?rev=707652&view=rev
Log:
Added truncation logic to putShortString and putMediumString in case strings
too large to encode are supplied
Modified:
incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Buffer.cpp
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Buffer.cpp
URL:
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Buffer.cpp?rev=707652&r1=707651&r2=707652&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Buffer.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Buffer.cpp Fri Oct 24
08:15:10 2008
@@ -220,14 +220,16 @@
}
void Buffer::putShortString(const string& s){
- uint8_t len = s.length();
+ size_t slen = s.length();
+ uint8_t len = slen < 0x100 ? (uint8_t) slen : 0xFF;
putOctet(len);
s.copy(data + position, len);
position += len;
}
void Buffer::putMediumString(const string& s){
- uint16_t len = s.length();
+ size_t slen = s.length();
+ uint16_t len = slen < 0x10000 ? (uint16_t) slen : 0xFFFF;
putShort(len);
s.copy(data + position, len);
position += len;