SDL: Fixed potential double-free when creating a renderer (thanks @Sackzement!)

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;