summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/gdbstub/gdbstub.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/core/gdbstub/gdbstub.cpp b/src/core/gdbstub/gdbstub.cpp
index 15e6f36a0..0d586ca10 100644
--- a/src/core/gdbstub/gdbstub.cpp
+++ b/src/core/gdbstub/gdbstub.cpp
@@ -306,6 +306,7 @@ static void SendReply(const char* reply) {
command_length = strlen(reply);
if (command_length + 4 > sizeof(command_buffer)) {
LOG_ERROR(Debug_GDBStub, "command_buffer overflow in SendReply");
+ return;
}
memcpy(command_buffer + 1, reply, command_length);
@@ -403,12 +404,12 @@ static void ReadCommand() {
}
while ((c = ReadByte()) != GDB_STUB_END) {
- command_buffer[command_length++] = c;
- if (command_length == sizeof(command_buffer)) {
+ if (command_length >= sizeof(command_buffer)) {
LOG_ERROR(Debug_GDBStub, "gdb: command_buffer overflow\n");
SendPacket(GDB_STUB_NACK);
return;
}
+ command_buffer[command_length++] = c;
}
u8 checksum_received = HexCharToValue(ReadByte()) << 4;