From 524739900a97fb183d2c8848dfee11aa16ddd31a Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Sat, 1 Nov 2025 10:37:33 -0700
Subject: [PATCH] Fixed potential double-free when creating a renderer (thanks
@Sackzement!)
Closes https://github.com/libsdl-org/SDL/pull/14371
---
src/render/SDL_render.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c
index 5a6d39fe16167..590e5ce9e1c87 100644
--- a/src/render/SDL_render.c
+++ b/src/render/SDL_render.c
@@ -1111,7 +1111,12 @@ SDL_Renderer *SDL_CreateRendererWithProperties(SDL_PropertiesID props)
for (int i = 0; render_drivers[i]; i++) {
const SDL_RenderDriver *driver = render_drivers[i];
if ((driver_attempt_len == SDL_strlen(driver->name)) && (SDL_strncasecmp(driver->name, driver_attempt, driver_attempt_len) == 0)) {
- SDL_free(driver_error);
+ if (driver_error) {
+ // Free any previous driver error
+ SDL_free(driver_error);
+ driver_error = NULL;
+ }
+
rc = driver->CreateRenderer(renderer, window, props);
if (rc) {
break;