Author: Jonas Devlieghere Date: 2022-02-15T13:58:35-08:00 New Revision: b7e7a982e93db82ebd7fc08bb9614468f8c0e1e5
URL: https://github.com/llvm/llvm-project/commit/b7e7a982e93db82ebd7fc08bb9614468f8c0e1e5 DIFF: https://github.com/llvm/llvm-project/commit/b7e7a982e93db82ebd7fc08bb9614468f8c0e1e5.diff LOG: [lldb] Check max_size before resizing DataBufferHeap Don't resize DataBufferHeap if the newly requested size exceeds the capacity of the underlying data structure, i.e. std::vector<uint8_t>. This matches the existing check in the DataBufferHeap constructor. Added: Modified: lldb/include/lldb/Utility/DataBufferHeap.h lldb/source/Utility/DataBufferHeap.cpp Removed: ################################################################################ diff --git a/lldb/include/lldb/Utility/DataBufferHeap.h b/lldb/include/lldb/Utility/DataBufferHeap.h index ace526bf0a47e..f50cec2479d10 100644 --- a/lldb/include/lldb/Utility/DataBufferHeap.h +++ b/lldb/include/lldb/Utility/DataBufferHeap.h @@ -80,8 +80,8 @@ class DataBufferHeap : public DataBuffer { /// to resize itself to. /// /// \return - /// The size in bytes after that this heap buffer was - /// successfully resized to. + /// The size in bytes after this heap buffer was resized. If + /// the resize failed the size will remain unchanged. lldb::offset_t SetByteSize(lldb::offset_t byte_size); /// Makes a copy of the \a src_len bytes in \a src. diff --git a/lldb/source/Utility/DataBufferHeap.cpp b/lldb/source/Utility/DataBufferHeap.cpp index 3aa0b6b0ac408..9154b3f041a75 100644 --- a/lldb/source/Utility/DataBufferHeap.cpp +++ b/lldb/source/Utility/DataBufferHeap.cpp @@ -47,7 +47,8 @@ uint64_t DataBufferHeap::GetByteSize() const { return m_data.size(); } // Sets the number of bytes that this object should be able to contain. This // can be used prior to copying data into the buffer. uint64_t DataBufferHeap::SetByteSize(uint64_t new_size) { - m_data.resize(new_size); + if (new_size < m_data.max_size()) + m_data.resize(new_size); return m_data.size(); } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits