[Lldb-commits] [lldb] c932266 - Add a nul byte to packet str before logging, increase default size.
Jason Molenda via lldb-commits
lldb-commits at lists.llvm.org
Tue Oct 20 01:43:44 PDT 2020
Author: Jason Molenda
Date: 2020-10-20T01:43:31-07:00
New Revision: c932266c8d0414672974eb777bbbb86f1d0f122d
URL: https://github.com/llvm/llvm-project/commit/c932266c8d0414672974eb777bbbb86f1d0f122d
DIFF: https://github.com/llvm/llvm-project/commit/c932266c8d0414672974eb777bbbb86f1d0f122d.diff
LOG: Add a nul byte to packet str before logging, increase default size.
Add a nul byte to the stream in CommunicationKDP::CheckForPacket
before we send the GetData() to a Log::Printf as a c-str. Avoids
a crash when logging kdp communications and memory layout isn't
in your favor.
Added:
Modified:
lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
Removed:
################################################################################
diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
index dc283fce8104..fc0539a089e2 100644
--- a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
+++ b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp
@@ -238,6 +238,7 @@ bool CommunicationKDP::CheckForPacket(const uint8_t *src, size_t src_len,
if (log && log->GetVerbose()) {
PacketStreamType log_strm;
DumpHexBytes(&log_strm, src, src_len, UINT32_MAX, LLDB_INVALID_ADDRESS);
+ log_strm.PutChar('\0');
LLDB_LOGF(log, "CommunicationKDP::%s adding %u bytes: %s", __FUNCTION__,
(uint32_t)src_len, log_strm.GetData());
}
diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
index d04765f9d86b..4981b42008db 100644
--- a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
+++ b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.h
@@ -25,7 +25,7 @@ class CommunicationKDP : public lldb_private::Communication {
const static uint32_t kMaxPacketSize = 1200;
const static uint32_t kMaxDataSize = 1024;
- typedef lldb_private::StreamBuffer<1024> PacketStreamType;
+ typedef lldb_private::StreamBuffer<4096> PacketStreamType;
enum CommandType {
KDP_CONNECT = 0u,
KDP_DISCONNECT,
More information about the lldb-commits
mailing list