From 9e5cbf034a603473ef209593c9db57cefcb37dd7 Mon Sep 17 00:00:00 2001 From: Eddy Jansson Date: Fri, 29 Apr 2022 22:36:12 +0200 Subject: [PATCH] Disallow non-positive allocation. Ensure that we're not trying to call SDL_small_alloc() with a count of zero. Transforming the code like this fixes a -Wmaybe-uninitialized warning from GCC 12.0.1 --- src/render/SDL_render.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index 58cda3d60..d94b0a988 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -2670,11 +2670,16 @@ static int RenderDrawPointsWithRects(SDL_Renderer * renderer, const SDL_Point * points, const int count) { - int retval = -1; + int retval; SDL_bool isstack; - SDL_FRect *frects = SDL_small_alloc(SDL_FRect, count, &isstack); + SDL_FRect *frects; int i; + if (count < 1) { + return 0; + } + + frects = SDL_small_alloc(SDL_FRect, count, &isstack); if (!frects) { return SDL_OutOfMemory(); } @@ -2686,9 +2691,7 @@ RenderDrawPointsWithRects(SDL_Renderer * renderer, frects[i].h = renderer->scale.y; } - if (count) { - retval = QueueCmdFillRects(renderer, frects, count); - } + retval = QueueCmdFillRects(renderer, frects, count); SDL_small_free(frects, isstack); @@ -2743,11 +2746,16 @@ static int RenderDrawPointsWithRectsF(SDL_Renderer * renderer, const SDL_FPoint * fpoints, const int count) { - int retval = -1; + int retval; SDL_bool isstack; - SDL_FRect *frects = SDL_small_alloc(SDL_FRect, count, &isstack); + SDL_FRect *frects; int i; + if (count < 1) { + return 0; + } + + frects = SDL_small_alloc(SDL_FRect, count, &isstack); if (!frects) { return SDL_OutOfMemory(); } @@ -2759,9 +2767,7 @@ RenderDrawPointsWithRectsF(SDL_Renderer * renderer, frects[i].h = renderer->scale.y; } - if (count) { - retval = QueueCmdFillRects(renderer, frects, count); - } + retval = QueueCmdFillRects(renderer, frects, count); SDL_small_free(frects, isstack);