From 698da84b4ac058e080668a08645e000f7009028e Mon Sep 17 00:00:00 2001 From: Frank <91616163+softhack007@users.noreply.github.com> Date: Thu, 6 Nov 2025 23:09:09 +0100 Subject: [PATCH] prevent division by zero when image width or height is 0 catch error early before starting the decode/paint loop --- wled00/image_loader.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/wled00/image_loader.cpp b/wled00/image_loader.cpp index ef283956..5ba7af0a 100644 --- a/wled00/image_loader.cpp +++ b/wled00/image_loader.cpp @@ -158,6 +158,12 @@ byte renderImageToSegment(Segment &seg) { if (millis() - lastFrameDisplayTime < wait) return IMAGE_ERROR_WAITING; decoder.getSize(&gifWidth, &gifHeight); + // bad gif size: prevent division by zero + if (gifWidth == 0 || gifHeight == 0) { + gifDecodeFailed = true; + USER_PRINTF("Invalid GIF dimensions: %dx%d\n", gifWidth, gifHeight); + return IMAGE_ERROR_GIF_DECODE; + } // softhack007: pre-calculate upscaling for speedup expandX = (seg_cols+(gifWidth-1)) / gifWidth; expandY = (seg_rows+(gifHeight-1)) / gifHeight;