On 7/17/20 3:51 AM, Alex Bennée wrote:
> From: KONRAD Frederic <frederic.kon...@adacore.com>
> 
> Don't send the trailing 0 from the string.
> 
> Signed-off-by: KONRAD Frederic <frederic.kon...@adacore.com>
> Signed-off-by: Alex Bennée <alex.ben...@linaro.org>
> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com>
> Message-Id: <1592215252-26742-2-git-send-email-frederic.kon...@adacore.com>
> ---
>  hw/semihosting/console.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)


Reviewed-by: Richard Henderson <richard.hender...@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~

Reply via email to