From 524739900a97fb183d2c8848dfee11aa16ddd31a Mon Sep 17 00:00:00 2001 From: Sam Lantinga 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 5a6d39fe16..590e5ce9e1 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;