Detected by GCC 7's -Wformat-truncation. snprintf writes at most
2 bytes here including the terminating NUL, so the result is
truncated. In addition, the newline at the end is pointless.
Fix the buffer size and the format string.
---
hw/display/jazz_led.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/display/jazz_led.c b/hw/display/jazz_led.c
index b72fdb1717..3c97d56434 100644
--- a/hw/display/jazz_led.c
+++ b/hw/display/jazz_led.c
@@ -227,13 +227,13 @@ static void jazz_led_invalidate_display(void *opaque)
static void jazz_led_text_update(void *opaque, console_ch_t *chardata)
{
LedState *s = opaque;
- char buf[2];
+ char buf[3];
dpy_text_cursor(s->con, -1, -1);
qemu_console_resize(s->con, 2, 1);
/* TODO: draw the segments */
- snprintf(buf, 2, "%02hhx\n", s->segments);
+ snprintf(buf, 3, "%02hhx", s->segments);
console_write_ch(chardata++, ATTR2CHTYPE(buf[0], QEMU_COLOR_BLUE,
QEMU_COLOR_BLACK, 1));
console_write_ch(chardata++, ATTR2CHTYPE(buf[1], QEMU_COLOR_BLUE,
--
2.12.2
On 03/05/2017 12:44, Paolo Bonzini wrote:
> Detected by GCC 7's -Wformat-truncation. snprintf writes at most
> 2 bytes here including the terminating NUL, so the result is
> truncated. In addition, the newline at the end is pointless.
> Fix the buffer size and the format string.
> ---
> hw/display/jazz_led.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/hw/display/jazz_led.c b/hw/display/jazz_led.c
> index b72fdb1717..3c97d56434 100644
> --- a/hw/display/jazz_led.c
> +++ b/hw/display/jazz_led.c
> @@ -227,13 +227,13 @@ static void jazz_led_invalidate_display(void *opaque)
> static void jazz_led_text_update(void *opaque, console_ch_t *chardata)
> {
> LedState *s = opaque;
> - char buf[2];
> + char buf[3];
>
> dpy_text_cursor(s->con, -1, -1);
> qemu_console_resize(s->con, 2, 1);
>
> /* TODO: draw the segments */
> - snprintf(buf, 2, "%02hhx\n", s->segments);
> + snprintf(buf, 3, "%02hhx", s->segments);
> console_write_ch(chardata++, ATTR2CHTYPE(buf[0], QEMU_COLOR_BLUE,
> QEMU_COLOR_BLACK, 1));
> console_write_ch(chardata++, ATTR2CHTYPE(buf[1], QEMU_COLOR_BLUE,
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
03.05.2017 13:44, Paolo Bonzini wrote: > Detected by GCC 7's -Wformat-truncation. snprintf writes at most > 2 bytes here including the terminating NUL, so the result is > truncated. In addition, the newline at the end is pointless. > Fix the buffer size and the format string. Polo, that's quite a bit too bureaucratic, but where's your s-o-b for this patch? :) Thanks, /mjt
On 05/05/2017 08:24, Michael Tokarev wrote: > 03.05.2017 13:44, Paolo Bonzini wrote: >> Detected by GCC 7's -Wformat-truncation. snprintf writes at most >> 2 bytes here including the terminating NUL, so the result is >> truncated. In addition, the newline at the end is pointless. >> Fix the buffer size and the format string. > > Polo, that's quite a bit too bureaucratic, > but where's your s-o-b for this patch? :) Oops, here: Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Paolo > > Thanks, > > /mjt >
03.05.2017 13:44, Paolo Bonzini wrote: > Detected by GCC 7's -Wformat-truncation. snprintf writes at most > 2 bytes here including the terminating NUL, so the result is > truncated. In addition, the newline at the end is pointless. > Fix the buffer size and the format string. Applied to -trivial, thanks! /mjt
© 2016 - 2026 Red Hat, Inc.