summaryrefslogtreecommitdiffstats
path: root/src/core/CdStreamPosix.cpp
diff options
context:
space:
mode:
authoreray orçunus <erayorcunus@gmail.com>2020-07-26 19:59:58 +0200
committereray orçunus <erayorcunus@gmail.com>2020-07-28 16:40:12 +0200
commiteb8844fd113d3fdae0456d56bdb0eb56e3a5f26b (patch)
tree127e6f19fa16061661ac1eed9158caece6dd4521 /src/core/CdStreamPosix.cpp
parentProvide more memory for casepath's arg (diff)
downloadre3-eb8844fd113d3fdae0456d56bdb0eb56e3a5f26b.tar
re3-eb8844fd113d3fdae0456d56bdb0eb56e3a5f26b.tar.gz
re3-eb8844fd113d3fdae0456d56bdb0eb56e3a5f26b.tar.bz2
re3-eb8844fd113d3fdae0456d56bdb0eb56e3a5f26b.tar.lz
re3-eb8844fd113d3fdae0456d56bdb0eb56e3a5f26b.tar.xz
re3-eb8844fd113d3fdae0456d56bdb0eb56e3a5f26b.tar.zst
re3-eb8844fd113d3fdae0456d56bdb0eb56e3a5f26b.zip
Diffstat (limited to '')
-rw-r--r--src/core/CdStreamPosix.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/core/CdStreamPosix.cpp b/src/core/CdStreamPosix.cpp
index 073ba909..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]) + 4);
- 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) + 4);
- if (casepath(path, r))
+ char* real = casepath(path, false);
+ if (real)
{
- gImgFiles[gNumImages] = open(r, _gdwCdStreamFlags);
+ gImgFiles[gNumImages] = open(real, _gdwCdStreamFlags);
+ free(real);
}
}