From 540637ed3334364fe9d1b54cdc96a52f59afda83 Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Wed, 25 Jul 2018 19:56:53 +0200 Subject: Ignore truncation in lcd-scroll.c Change-Id: Id1008300e58cf12ab920c1023354a74a6d32daae --- firmware/drivers/lcd-scroll.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'firmware/drivers') diff --git a/firmware/drivers/lcd-scroll.c b/firmware/drivers/lcd-scroll.c index 0e17303bd3..dd6a6fe8cb 100644 --- a/firmware/drivers/lcd-scroll.c +++ b/firmware/drivers/lcd-scroll.c @@ -140,6 +140,7 @@ void LCDFN(jump_scroll_delay)(int ms) * Returns true if the text scrolled to the end */ bool LCDFN(scroll_now)(struct scrollinfo *s) { + int len; int width = LCDFN(getstringsize)(s->linebuffer, NULL, NULL); bool ended = false; /* assume s->scroll_func() don't yield; otherwise this buffer might need @@ -164,8 +165,12 @@ bool LCDFN(scroll_now)(struct scrollinfo *s) } else { - snprintf(line_buf, sizeof(line_buf)-1, "%s%s%s", - s->linebuffer, " ", s->linebuffer); + len = snprintf(line_buf, sizeof(line_buf)-1, "%s%s%s", + s->linebuffer, " ", s->linebuffer); + + if ((unsigned) len > sizeof(line_buf)) + do { } while (0); /* ignore truncation */ + s->line = line_buf; width += LCDFN(getstringsize)(" ", NULL, NULL); /* scroll forward the whole time */ -- cgit v1.2.3