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 - 2024 Red Hat, Inc.