From 218e45247fe47dce1b99581361b62269a92bb0fe Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 27 Jul 2024 09:06:52 -0700 Subject: [PATCH] Fixed memory leak when SDL_Init() was called multiple times --- src/filesystem/SDL_filesystem.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/filesystem/SDL_filesystem.c b/src/filesystem/SDL_filesystem.c index 442f5021bc..6248792dec 100644 --- a/src/filesystem/SDL_filesystem.c +++ b/src/filesystem/SDL_filesystem.c @@ -450,17 +450,19 @@ char *SDL_GetPrefPath(const char *org, const char *app) void SDL_InitFilesystem(void) { - CachedBasePath = NULL; // just in case. - SDL_zeroa(CachedUserFolders); } void SDL_QuitFilesystem(void) { - SDL_free(CachedBasePath); - CachedBasePath = NULL; + if (CachedBasePath) { + SDL_free(CachedBasePath); + CachedBasePath = NULL; + } for (int i = 0; i < SDL_arraysize(CachedUserFolders); i++) { - SDL_free(CachedUserFolders[i]); - CachedUserFolders[i] = NULL; + if (CachedUserFolders[i]) { + SDL_free(CachedUserFolders[i]); + CachedUserFolders[i] = NULL; + } } }