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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c
index 58cda3d..d94b0a9 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);