diff --git a/Editor/LoadScreen.cpp b/Editor/LoadScreen.cpp index 7c7d70b4e4..cba550c2cc 100644 --- a/Editor/LoadScreen.cpp +++ b/Editor/LoadScreen.cpp @@ -173,7 +173,15 @@ void LoadSaveScreenEntry() vfs::CVirtualProfile* prof = it.value(); memset(&FileInfo, 0, sizeof(GETFILESTRUCT)); strcpy(FileInfo.zFileName, "< "); - strcat(FileInfo.zFileName, prof->cName.utf8().c_str()); + // Cut filename off if it's too long for the buffer + if (strlen(prof->cName.utf8().c_str()) > FILENAME_BUFLEN-4) + { + strncpy(FileInfo.zFileName+1, prof->cName.utf8().c_str(), FILENAME_BUFLEN-4); + } + else + { + strcat(FileInfo.zFileName, prof->cName.utf8().c_str()); + } strcat(FileInfo.zFileName, " >"); FileInfo.zFileName[FILENAME_BUFLEN] = 0; FileInfo.uiFileAttribs = FILE_IS_DIRECTORY; diff --git a/Editor/LoadScreen.h b/Editor/LoadScreen.h index c8adac4cf9..2451819496 100644 --- a/Editor/LoadScreen.h +++ b/Editor/LoadScreen.h @@ -1,7 +1,7 @@ #include "BuildDefines.h" #include "Fileman.h" -#define FILENAME_BUFLEN (20 + 4 + 1)//dnl ch39 190909 +4 is for ".dat", +1 is for '\0' //dnl ch81 021213 +#define FILENAME_BUFLEN (30 + 4 + 1)//dnl ch39 190909 +4 is for ".dat", +1 is for '\0' //dnl ch81 021213 #ifdef JA2EDITOR