Windows GetBasePath: fixed reallocation code.
diff --git a/src/filesystem/windows/SDL_sysfilesystem.c b/src/filesystem/windows/SDL_sysfilesystem.c
index 381b2d1..2bc7992 100644
--- a/src/filesystem/windows/SDL_sysfilesystem.c
+++ b/src/filesystem/windows/SDL_sysfilesystem.c
@@ -58,12 +58,14 @@ SDL_GetBasePath(void)
}
while (SDL_TRUE) {
- path = (WCHAR *)SDL_realloc(path, buflen * sizeof (WCHAR));
- if (!path) {
+ WCHAR *ptr = (WCHAR *)SDL_realloc(path, buflen * sizeof (WCHAR));
+ if (!ptr) {
+ SDL_free(path);
FreeLibrary(psapi);
SDL_OutOfMemory();
return NULL;
}
+ path = ptr;
len = pGetModuleFileNameExW(GetCurrentProcess(), NULL, path, buflen);
if (len != buflen) {
@@ -71,7 +73,6 @@ SDL_GetBasePath(void)
}
/* buffer too small? Try again. */
- SDL_free(path);
buflen *= 2;
}