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;    


Reply via email to