From ad059191267584aff2e3d0455607ca3fad11a610 Mon Sep 17 00:00:00 2001 From: NightlyFox Date: Sat, 29 Sep 2018 21:28:08 -0500 Subject: [PATCH] added free and tjDestory to failures of decompress funcs --- common/menu-entry.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/common/menu-entry.c b/common/menu-entry.c index 28b55a1..a87dd1b 100644 --- a/common/menu-entry.c +++ b/common/menu-entry.c @@ -332,11 +332,19 @@ void menuEntryParseIcon(menuEntry_s* me) { tjhandle _jpegDecompressor = tjInitDecompress(); - if(tjDecompressHeader2(_jpegDecompressor, me->icon, me->icon_size, &w, &h, &samp)==-1) return; + if(tjDecompressHeader2(_jpegDecompressor, me->icon, me->icon_size, &w, &h, &samp)==-1) { + free(me->icon_gfx); + tjDestroy(_jpegDecompressor); + return; + } if (w != 256 || h != 256 ) return; - if(tjDecompress2(_jpegDecompressor, me->icon, me->icon_size, me->icon_gfx, w, 0/*pitch*/, h, TJPF_RGB, TJFLAG_ACCURATEDCT)==-1) return; + if(tjDecompress2(_jpegDecompressor, me->icon, me->icon_size, me->icon_gfx, w, 0, h, TJPF_RGB, TJFLAG_ACCURATEDCT)==-1) { + free(me->icon_gfx); + tjDestroy(_jpegDecompressor); + return; + } me->icon_size = 0; free(me->icon);