diff options
author | eray orçunus <erayorcunus@gmail.com> | 2020-07-26 19:59:58 +0200 |
---|---|---|
committer | eray orçunus <erayorcunus@gmail.com> | 2020-07-28 16:56:47 +0200 |
commit | c87b639a84ca8bc33667abc98a731a61350cc518 (patch) | |
tree | 5805f0a7f60da9ba4acd0e60700f0418c1f01188 /src/core/CdStreamPosix.cpp | |
parent | Merge pull request #665 from erorcun/miami (diff) | |
download | re3-c87b639a84ca8bc33667abc98a731a61350cc518.tar re3-c87b639a84ca8bc33667abc98a731a61350cc518.tar.gz re3-c87b639a84ca8bc33667abc98a731a61350cc518.tar.bz2 re3-c87b639a84ca8bc33667abc98a731a61350cc518.tar.lz re3-c87b639a84ca8bc33667abc98a731a61350cc518.tar.xz re3-c87b639a84ca8bc33667abc98a731a61350cc518.tar.zst re3-c87b639a84ca8bc33667abc98a731a61350cc518.zip |
Diffstat (limited to 'src/core/CdStreamPosix.cpp')
-rw-r--r-- | src/core/CdStreamPosix.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/core/CdStreamPosix.cpp b/src/core/CdStreamPosix.cpp index 4d6bcdab..45fd9832 100644 --- a/src/core/CdStreamPosix.cpp +++ b/src/core/CdStreamPosix.cpp @@ -189,10 +189,11 @@ GetGTA3ImgSize(void) realpath(gImgNames[0], path); if (stat(path, &statbuf) == -1) { // Try case-insensitivity - char *r = (char*)alloca(strlen(gImgNames[0]) + 2); - if (casepath(gImgNames[0], r)) + char* real = casepath(gImgNames[0], false); + if (real) { - realpath(r, path); + realpath(real, path); + free(real); if (stat(path, &statbuf) != -1) goto ok; } @@ -210,7 +211,6 @@ CdStreamShutdown(void) { // Destroying semaphores and free(gpReadInfo) will be done at threads #ifndef ONE_THREAD_PER_CHANNEL - free(gChannelRequestQ.items); gCdStreamThreadStatus = 2; sem_post(&gCdStreamSema); #endif @@ -442,6 +442,7 @@ void *CdStreamThread(void *param) sem_destroy(&gpReadInfo[i].pDoneSemaphore); } sem_destroy(&gCdStreamSema); + free(gChannelRequestQ.items); #else sem_destroy(&gpReadInfo[channel].pStartSemaphore); sem_destroy(&gpReadInfo[channel].pDoneSemaphore); @@ -460,10 +461,11 @@ CdStreamAddImage(char const *path) // Fix case sensitivity and backslashes. if (gImgFiles[gNumImages] == -1) { - char *r = (char*)alloca(strlen(path) + 2); - if (casepath(path, r)) + char* real = casepath(path, false); + if (real) { - gImgFiles[gNumImages] = open(r, _gdwCdStreamFlags); + gImgFiles[gNumImages] = open(real, _gdwCdStreamFlags); + free(real); } } |