diff options
Diffstat (limited to 'src/SFileAddFile.cpp')
-rw-r--r-- | src/SFileAddFile.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/SFileAddFile.cpp b/src/SFileAddFile.cpp index 5997c1b..524fb50 100644 --- a/src/SFileAddFile.cpp +++ b/src/SFileAddFile.cpp @@ -725,6 +725,14 @@ bool WINAPI SFileCreateFile( nError = ERROR_INVALID_PARAMETER; } + // Check for MPQs that have invalid block table size + // Example: size of block table: 0x41, size of hash table: 0x40 + if(nError == ERROR_SUCCESS) + { + if(ha->dwFileTableSize > ha->dwMaxFileCount) + nError = ERROR_DISK_FULL; + } + // Initiate the add file operation if(nError == ERROR_SUCCESS) nError = SFileAddFile_Init(ha, szArchivedName, FileTime, dwFileSize, lcLocale, dwFlags, (TMPQFile **)phFile); |