From 965a3fcd313339d08e6025ef37e3a17ccc929ebe Mon Sep 17 00:00:00 2001 From: "Stephen D. Huston" Date: Fri, 26 Jun 2009 22:13:33 +0000 Subject: Fix out-of-range vector access; fixes QPID-1957 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@788886 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/framing/FrameDecoder.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'cpp/src/qpid/framing/FrameDecoder.cpp') diff --git a/cpp/src/qpid/framing/FrameDecoder.cpp b/cpp/src/qpid/framing/FrameDecoder.cpp index 1e73ee1e51..529cdd76a7 100644 --- a/cpp/src/qpid/framing/FrameDecoder.cpp +++ b/cpp/src/qpid/framing/FrameDecoder.cpp @@ -32,7 +32,8 @@ namespace { /** Append up to n bytes from start of buf to end of bytes. */ void append(std::vector& 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(p), n); -- cgit v1.2.1