gdb_server: check for invalid read memory requests
This prevents invalid free(NULL) (that crashes OpenOCD on desktop distros). With radare2 it's now a bit more useful, memory access works if I seek to the correct address, can't test further as it apparently lacks thumb2 support. Change-Id: I6ec32d09fd52dab53ba765d7f7519baa1f55d973 Signed-off-by: Paul Fertser <fercerpav@gmail.com> Reviewed-on: http://openocd.zylin.com/1853 Tested-by: jenkins Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>__archive__
parent
63fa73169b
commit
245e8fff3b
|
@ -1352,6 +1352,12 @@ static int gdb_read_memory_packet(struct connection *connection,
|
|||
|
||||
len = strtoul(separator + 1, NULL, 16);
|
||||
|
||||
if (!len) {
|
||||
LOG_WARNING("invalid read memory packet received (len == 0)");
|
||||
gdb_put_packet(connection, NULL, 0);
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
buffer = malloc(len);
|
||||
|
||||
LOG_DEBUG("addr: 0x%8.8" PRIx32 ", len: 0x%8.8" PRIx32 "", addr, len);
|
||||
|
|
Loading…
Reference in New Issue