From 5afdcdd46043481675a48891a071dbb1fea1ab4c Mon Sep 17 00:00:00 2001 From: William Wilgus Date: Tue, 24 Sep 2019 23:40:38 -0500 Subject: Bug fix icon.c crashes with negative icon index The index for Icon_NOICON is -1 which is caught properly as is icon > Icon_Last_Themeable But if you pass an index lower than Icon_NOICON screen_put_iconxy() tries to read memory prior to the iconset resulting in a crash Change-Id: I415e650932d65214d883a1595e22261f22e776b6 --- apps/gui/icon.c | 2 +- apps/player/icons.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/gui/icon.c b/apps/gui/icon.c index c20f1fe09a..db3ae2c96b 100644 --- a/apps/gui/icon.c +++ b/apps/gui/icon.c @@ -107,7 +107,7 @@ void screen_put_iconxy(struct screen * display, const int is_rtl = lang_is_rtl(); const struct bitmap *iconset; - if (icon == Icon_NOICON) + if (icon <= Icon_NOICON) { if (is_rtl) xpos = display->getwidth() - xpos - width; diff --git a/apps/player/icons.c b/apps/player/icons.c index 0d160bc967..dc804560f2 100644 --- a/apps/player/icons.c +++ b/apps/player/icons.c @@ -84,7 +84,7 @@ static const unsigned short icons[Icon_Last_Themeable] = { extern void screen_put_iconxy(struct screen * screen, int x, int y, enum themable_icons icon) { - if (icon == Icon_NOICON) + if (icon <= Icon_NOICON) screen->putchar(x, y, ' '); else if (icon >= Icon_Last_Themeable) screen->putchar(x, y, old_Icon_Unknown); -- cgit v1.2.3