diff options
Diffstat (limited to 'gdb/gdbserver/server.c')
-rw-r--r-- | gdb/gdbserver/server.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gdb/gdbserver/server.c b/gdb/gdbserver/server.c index 775d9efe025..371647c0666 100644 --- a/gdb/gdbserver/server.c +++ b/gdb/gdbserver/server.c @@ -1808,12 +1808,12 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p) { /* CRC check (compare-section). */ char *comma; - CORE_ADDR base; + ULONGEST base; int len; unsigned long long crc; require_running (own_buf); - base = strtoul (own_buf + 5, &comma, 16); + comma = unpack_varlen_hex (own_buf + 5, &base); if (*comma++ != ',') { write_enn (own_buf); @@ -3192,13 +3192,16 @@ process_serial_event (void) /* Fallthrough. */ case 'z': /* remove_ ... */ { - char *lenptr; char *dataptr; - CORE_ADDR addr = strtoul (&own_buf[3], &lenptr, 16); - int len = strtol (lenptr + 1, &dataptr, 16); + ULONGEST addr; + int len; char type = own_buf[1]; int res; const int insert = ch == 'Z'; + char *p = &own_buf[3]; + + p = unpack_varlen_hex (p, &addr); + len = strtol (p + 1, &dataptr, 16); /* Default to unrecognized/unsupported. */ res = 1; |