Message ID | 20200717105139.25293-4-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | candidate fixes for 5.1-rc1 (shippable, semihosting, OOM tcg) | expand |
On 7/17/20 3:51 AM, Alex Bennée wrote: > From: KONRAD Frederic <frederic.konrad@adacore.com> > > Don't send the trailing 0 from the string. > > Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Message-Id: <1592215252-26742-2-git-send-email-frederic.konrad@adacore.com> > --- > hw/semihosting/console.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > diff --git a/hw/semihosting/console.c b/hw/semihosting/console.c > index 22e7827824a..9b4fee92602 100644 > --- a/hw/semihosting/console.c > +++ b/hw/semihosting/console.c > @@ -52,7 +52,9 @@ static GString *copy_user_string(CPUArchState *env, target_ulong addr) > > do { > if (cpu_memory_rw_debug(cpu, addr++, &c, 1, 0) == 0) { > - s = g_string_append_c(s, c); > + if (c) { > + s = g_string_append_c(s, c); > + } > } else { > qemu_log_mask(LOG_GUEST_ERROR, > "%s: passed inaccessible address " TARGET_FMT_lx, > Next cycle, we could clean up this loop a bit, rather than testing c != 0 twice. E.g. while (1) { if (cpu_memory_rw_debug(cpu, addr++, &c, 1, 0)) { error; break; } if (c == 0) { break; } s = g_string_append_c(s, c); } r~
diff --git a/hw/semihosting/console.c b/hw/semihosting/console.c index 22e7827824a..9b4fee92602 100644 --- a/hw/semihosting/console.c +++ b/hw/semihosting/console.c @@ -52,7 +52,9 @@ static GString *copy_user_string(CPUArchState *env, target_ulong addr) do { if (cpu_memory_rw_debug(cpu, addr++, &c, 1, 0) == 0) { - s = g_string_append_c(s, c); + if (c) { + s = g_string_append_c(s, c); + } } else { qemu_log_mask(LOG_GUEST_ERROR, "%s: passed inaccessible address " TARGET_FMT_lx,