From 93a01471f3df559fffc567247288b3301620c4d7 Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Thu, 28 Jan 2021 17:17:08 +0000 Subject: [PATCH] sim/rx: fix an issue where we try to modify a const string While experimenting with switching on warnings for the rx simulator I discovered this bug. In sim_do_command we get passed a 'const char *' argument. We create a copy of this string to work with locally, but then while processing this we accidentally switch back to reference the original string. sim/rx/ChangeLog: * gdb-if.c (sim_do_command): Work with a copy of the command. --- sim/rx/ChangeLog | 4 ++++ sim/rx/gdb-if.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/sim/rx/ChangeLog b/sim/rx/ChangeLog index f0640395822..8d5f1d745e6 100644 --- a/sim/rx/ChangeLog +++ b/sim/rx/ChangeLog @@ -1,3 +1,7 @@ +2021-02-08 Andrew Burgess + + * gdb-if.c (sim_do_command): Work with a copy of the command. + 2021-02-08 Andrew Burgess * gdb-if.c (sim_memory_map): New function. diff --git a/sim/rx/gdb-if.c b/sim/rx/gdb-if.c index 6f8bfbd1c50..55eb13d12ef 100644 --- a/sim/rx/gdb-if.c +++ b/sim/rx/gdb-if.c @@ -804,13 +804,13 @@ sim_do_command (SIM_DESC sd, const char *cmd) p++; /* Find the extent of the command word. */ - for (p = cmd; *p; p++) + for (; *p != '\0'; p++) if (isspace (*p)) break; /* Null-terminate the command word, and record the start of any further arguments. */ - if (*p) + if (*p != '\0') { *p = '\0'; args = p + 1; -- 2.30.2