summaryrefslogtreecommitdiffstats
path: root/firmware/drivers
diff options
context:
space:
mode:
authorWilliam Wilgus <me.theuser@yahoo.com>2018-07-25 19:56:53 +0200
committerWilliam Wilgus <me.theuser@yahoo.com>2018-07-25 19:56:53 +0200
commit540637ed3334364fe9d1b54cdc96a52f59afda83 (patch)
tree21246e4beac87b08829220a2ac91a3d09c83b74b /firmware/drivers
parent5e5ddce270ce8fb87baff7ce898173fe2ae2fb6b (diff)
downloadrockbox-540637ed3334364fe9d1b54cdc96a52f59afda83.tar.gz
rockbox-540637ed3334364fe9d1b54cdc96a52f59afda83.tar.bz2
rockbox-540637ed3334364fe9d1b54cdc96a52f59afda83.zip
Ignore truncation in lcd-scroll.c
Change-Id: Id1008300e58cf12ab920c1023354a74a6d32daae
Diffstat (limited to 'firmware/drivers')
-rw-r--r--firmware/drivers/lcd-scroll.c9
1 files changed, 7 insertions, 2 deletions
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 */