Skip to content

Commit d9af787

Browse files
Cosmetics
1 parent 630de2e commit d9af787

File tree

3 files changed

+9
-4
lines changed

3 files changed

+9
-4
lines changed

src/SMemUtf8.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ const unsigned char SMemCharToByte[0x80] =
4040
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF // 0x70
4141
};
4242

43+
static TCHAR szInvalidCharPrefix[] = _T("%u[");
44+
4345
//-----------------------------------------------------------------------------
4446
// Local functions
4547

@@ -217,7 +219,7 @@ static size_t UTF8_FlushInvalidChars(LPTSTR szBuffer, size_t ccBuffer, size_t nO
217219
// Space for 4 characters needed
218220
if(szBuffer != NULL && (nOutLength + nLengthNeeded) <= ccBuffer)
219221
{
220-
memcpy(szBuffer + nOutLength, _T("%u["), 6);
222+
memcpy(szBuffer + nOutLength, szInvalidCharPrefix, sizeof(szInvalidCharPrefix) - sizeof(TCHAR));
221223

222224
SMemBinToStr(szBuffer + nOutLength + 3, ccBuffer - 3, InvalidChars, nInvalidChars);
223225

test/StormTest.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1436,9 +1436,12 @@ static DWORD LoadMpqFile(TLogHelper & Logger, HANDLE hMpq, LPCSTR szFileName, LC
14361436
DWORD dwBytesRead;
14371437
DWORD dwCrc32 = 0;
14381438
DWORD dwErrCode = ERROR_SUCCESS;
1439+
TCHAR szSafeName[1024];
14391440

1440-
// Do nothing if the file name is invalid
1441-
Logger.PrintProgress("Loading file %s ...", GetShortPlainName(szFileName));
1441+
// Print the file name to the console.
1442+
// Prevent bad UTF-8 sequences to go through
1443+
SMemUTF8ToFileName(szSafeName, _countof(szSafeName), szFileName, NULL, 0, NULL);
1444+
Logger.PrintProgress(_T("Loading file %s ..."), GetShortPlainName(szSafeName));
14421445

14431446
#if defined(_MSC_VER) && defined(_DEBUG)
14441447
//if(!_stricmp(szFileName, "(signature)"))

test/stormlib-test-001.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ TestReadingMpq (MPQ_2023_v4_UTF8.s2ma) succeeded.
6868
TestReadingMpq (MPQ_2023_v1_GreenTD.w3x) succeeded.
6969
TestReadingMpq (MPQ_2023_v4_1F644C5A.SC2Replay) succeeded.
7070
TestReadingMpq (<Chinese MPQ name>) succeeded.
71-
TestReadingMpq (MPQ_2024_v1_BadUtf8_5.0.2.w3x) succeeded. ... ..
71+
TestReadingMpq (MPQ_2024_v1_BadUtf8_5.0.2.w3x) succeeded.
7272
TestReadingMpq (MPQ_2002_v1_ProtectedMap_InvalidUserData.w3x) succeeded.
7373
TestReadingMpq (MPQ_2002_v1_ProtectedMap_InvalidMpqFormat.w3x) succeeded.
7474
TestReadingMpq (MPQ_2002_v1_ProtectedMap_Spazzler.w3x) succeeded.

0 commit comments

Comments
 (0)