diff options
author | Ladislav Zezula <zezula@volny.cz> | 2025-04-28 13:55:45 +0200 |
---|---|---|
committer | Ladislav Zezula <zezula@volny.cz> | 2025-04-28 13:55:45 +0200 |
commit | c6d89095fcdcaa83987d64040f44416bd9083f25 (patch) | |
tree | cfc6ab0f5dd00ea0b601d573eca98fe8a6355c10 | |
parent | 774c3902232603e7700983b7d4d697a97a8c7c83 (diff) |
Fixed wrong state in SFileAddFile
-rw-r--r-- | StormLib_test.vcxproj | 2 | ||||
-rw-r--r-- | src/SFileAddFile.cpp | 2 | ||||
-rwxr-xr-x | test/StormTest.cpp | 65 |
3 files changed, 27 insertions, 42 deletions
diff --git a/StormLib_test.vcxproj b/StormLib_test.vcxproj index e7703c4..cfa4d65 100644 --- a/StormLib_test.vcxproj +++ b/StormLib_test.vcxproj @@ -46,7 +46,7 @@ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v143</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> + <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> diff --git a/src/SFileAddFile.cpp b/src/SFileAddFile.cpp index 54dcbc5..f98a185 100644 --- a/src/SFileAddFile.cpp +++ b/src/SFileAddFile.cpp @@ -443,7 +443,7 @@ DWORD SFileAddFile_Init( // Allocate the TMPQFile entry for newly added file
hf = CreateWritableHandle(ha, dwFileSize);
if(hf == NULL)
- return false;
+ return GetLastError();
// Allocate file entry in the MPQ
if(dwErrCode == ERROR_SUCCESS)
diff --git a/test/StormTest.cpp b/test/StormTest.cpp index 3d9cb96..b769e02 100755 --- a/test/StormTest.cpp +++ b/test/StormTest.cpp @@ -3864,62 +3864,47 @@ static DWORD TestUtf8Conversions(const BYTE * szTestString, const TCHAR * szList static void Test_PlayingSpace()
{
- LPCTSTR szMpqName = _T("e:\\Ladik\\Incoming\\wow-final.MPQ");
- HANDLE hMpq = NULL;
+ HANDLE SFileOpenArchivevar0 = NULL;
+ LPCSTR fuzzData = "c:\\segv";
- if(SFileOpenArchive(szMpqName, 0, 0, &hMpq))
+ for(DWORD i = 0; i < 1000; i++)
{
- SFileVerifyArchive(hMpq);
- SFileCloseArchive(hMpq);
- }
+ char NewName[128];
-/*
- LPCSTR fuzzData = "e:\\MPQ_2025_05_AddFileError.mpq";
+ sprintf(NewName, "c:\\segv%04u", i);
+ CopyFileA(fuzzData, NewName, FALSE);
+ SFileOpenArchivevar0 = NULL;
- HANDLE SFileOpenArchivevar0;
- memset(&SFileOpenArchivevar0, 0, (sizeof SFileOpenArchivevar0));
+ bool SFileOpenArchiveval1 = SFileOpenArchive(NewName, i, 0, &SFileOpenArchivevar0);
+ if(!SFileOpenArchiveval1)
+ {
+ fprintf(stderr, "err2");
+ exit(0);
+ }
- bool SFileOpenArchiveval1 = SFileOpenArchive(fuzzData, (DWORD)strlen(fuzzData), 0, &SFileOpenArchivevar0);
- //if(strcmp(argv[1], fuzzData))
- //{
- // fprintf(stderr, "err1");
- // exit(0);
- //}
- printf("Test");
- if((size_t)SFileOpenArchiveval1 < 1)
- {
- fprintf(stderr, "err2");
- exit(0);
- }
- bool SFileAddWaveval1 = SFileAddWave(SFileOpenArchivevar0, fuzzData, fuzzData, (DWORD)strlen(fuzzData), 1);
- //if(strcmp(argv[1], fuzzData))
- //{
- // fprintf(stderr, "err3");
- // exit(0);
- //}
- if((size_t)SFileAddWaveval1 < 1)
- {
- fprintf(stderr, "err4");
- exit(0);
+ bool SFileAddWaveval1 = SFileAddWave(SFileOpenArchivevar0, fuzzData, fuzzData, i, 1);
+ if(!SFileAddWaveval1)
+ {
+ SFileCloseArchive(SFileOpenArchivevar0);
+ fprintf(stderr, "err4");
+ exit(0);
+ }
}
+
bool SFileRemoveFileval1 = SFileRemoveFile(SFileOpenArchivevar0, fuzzData, (DWORD)_tcslen(fuzzData));
- //if(strcmp(argv[1], fuzzData))
- //{
- // fprintf(stderr, "err5");
- // exit(0);
- //}
- if((size_t)SFileRemoveFileval1 < 1)
+ if(!SFileRemoveFileval1)
{
fprintf(stderr, "err6");
exit(0);
}
+
DWORD SFileVerifyArchiveval1 = SFileVerifyArchive(SFileOpenArchivevar0);
- if(SFileVerifyArchiveval1 < 0)
+ if(!SFileVerifyArchiveval1)
{
fprintf(stderr, "err7");
exit(0);
}
- */
+
/*
if(SFileOpenArchive(_T("E:\\DIABDAT.MPQ"), 0, 0, &hMpq))
{
|