summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Src/FileUtil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/Common/Src/FileUtil.cpp')
-rw-r--r--Source/Core/Common/Src/FileUtil.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/Source/Core/Common/Src/FileUtil.cpp b/Source/Core/Common/Src/FileUtil.cpp
index 63464ae256..11fd035ad9 100644
--- a/Source/Core/Common/Src/FileUtil.cpp
+++ b/Source/Core/Common/Src/FileUtil.cpp
@@ -172,9 +172,13 @@ bool CreateFullPath(const char *fullPath)
return true;
}
- const char *position = fullPath;
+ // safety check to ensure we have good dir seperators
+ std::string strFullPath(fullPath);
+ NormalizeDirSep(&strFullPath);
+
+ const char *position = strFullPath.c_str();
while (true) {
- // Find next sub path, support both \ and / directory separators
+ // Find next sub path
position = strchr(position, DIR_SEP_CHR);
// we're done, yay!
@@ -184,9 +188,9 @@ bool CreateFullPath(const char *fullPath)
position++;
// Create next sub path
- int sLen = (int)(position - fullPath);
+ int sLen = (int)(position - strFullPath.c_str());
if (sLen > 0) {
- char *subPath = strndup(fullPath, sLen);
+ char *subPath = strndup(strFullPath.c_str(), sLen);
if (!File::IsDirectory(subPath)) {
File::CreateDir(subPath);
}
@@ -196,7 +200,7 @@ bool CreateFullPath(const char *fullPath)
// A safety check
panicCounter--;
if (panicCounter <= 0) {
- ERROR_LOG(COMMON, "CreateFullPath: directory stracture too deep");
+ ERROR_LOG(COMMON, "CreateFullPath: directory structure too deep");
return false;
}
}