From 9ad1506ed7426b2561b9456e71771a6a09eddff8 Mon Sep 17 00:00:00 2001 From: Martin Sundhaug Date: Wed, 7 Sep 2016 18:29:57 -0400 Subject: [PATCH] GDB: Range check register in remoteReadRegister and remoteWriteRegister --- src/gba/remote.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/gba/remote.cpp b/src/gba/remote.cpp index 264edc92..51a18745 100644 --- a/src/gba/remote.cpp +++ b/src/gba/remote.cpp @@ -3945,6 +3945,11 @@ void remoteReadRegister(char* p) { int r; sscanf(p, "%x", &r); + if(r < 0 || r > 15) + { + remotePutPacket("E 00"); + return; + } char buffer[1024]; char* s = buffer; uint32_t v = reg[r].I; @@ -3997,6 +4002,12 @@ void remoteWriteRegister(char* p) sscanf(p, "%x=", &r); + if(r < 0 || r > 15) + { + remotePutPacket("E 00"); + return; + } + p = strchr(p, '='); p++;