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:[email protected]