From 0ffd985972f6a087fc2c847c83cedfdc858fc52f Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 18 May 2022 09:59:12 -0700 Subject: [PATCH] Check to see if the file exists in the base path before returning it --- test/testutils.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/test/testutils.c b/test/testutils.c index fa21fe2a87..e6773ac3a0 100644 --- a/test/testutils.c +++ b/test/testutils.c @@ -30,6 +30,7 @@ GetNearbyFilename(const char *file) base = SDL_GetBasePath(); if (base != NULL) { + SDL_RWops *rw; size_t len = SDL_strlen(base) + SDL_strlen(pathsep) + SDL_strlen(file) + 1; path = SDL_malloc(len); @@ -42,13 +43,21 @@ GetNearbyFilename(const char *file) SDL_snprintf(path, len, "%s%s%s", base, pathsep, file); SDL_free(base); - } else { - path = SDL_strdup(file); - if (path == NULL) { - SDL_OutOfMemory(); + + rw = SDL_RWFromFile(path, "rb"); + if (rw) { + SDL_RWclose(rw); + return path; } + + /* Couldn't find the file in the base path */ + SDL_free(path); } + path = SDL_strdup(file); + if (path == NULL) { + SDL_OutOfMemory(); + } return path; }