Author: shuston
Date: Fri Jun 26 22:13:33 2009
New Revision: 788886

URL: http://svn.apache.org/viewvc?rev=788886&view=rev
Log:
Fix out-of-range vector access; fixes QPID-1957

Modified:
    qpid/trunk/qpid/cpp/src/qpid/framing/FrameDecoder.cpp

Modified: qpid/trunk/qpid/cpp/src/qpid/framing/FrameDecoder.cpp
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/framing/FrameDecoder.cpp?rev=788886&r1=788885&r2=788886&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/framing/FrameDecoder.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/framing/FrameDecoder.cpp Fri Jun 26 22:13:33 
2009
@@ -32,7 +32,8 @@
 /** Append up to n bytes from start of buf to end of bytes. */
 void append(std::vector<char>& bytes, Buffer& buffer, size_t n) {
     size_t oldSize = bytes.size();
-    n = std::min(n, size_t(buffer.available()));
+    if ((n = std::min(n, size_t(buffer.available()))) == 0)
+        return;
     bytes.resize(oldSize+n);
     char* p = &bytes[oldSize];
     buffer.getRawData(reinterpret_cast<uint8_t*>(p), n);



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscr...@qpid.apache.org

Reply via email to