clamp gdb memory reads to 0x1800
authorGeorge Talusan <george.talusan@gmail.com>
Fri, 19 Feb 2016 05:04:44 +0000 (00:04 -0500)
committerGeorge Talusan <george.talusan@gmail.com>
Fri, 19 Feb 2016 05:04:44 +0000 (00:04 -0500)
gdbserver/gdb-server.c

index c8152118b0db5908dc742959c11d7d610b4a605a..b272f4caa751bd418aad96448440134bf27ef79f 100644 (file)
@@ -1353,6 +1353,12 @@ int serve(stlink_t *sl, st_state_t *st) {
 
                 unsigned adj_start = start % 4;
                 unsigned count_rnd = (count + adj_start + 4 - 1) / 4 * 4;
+                if (count_rnd > sl->flash_pgsz)
+                    count_rnd = sl->flash_pgsz;
+                if (count_rnd > 0x1800)
+                    count_rnd = 0x1800;
+                if (count_rnd < count)
+                    count = count_rnd;
 
                 stlink_read_mem32(sl, start - adj_start, count_rnd);