aboutsummaryrefslogtreecommitdiff
path: root/src/SFileAddFile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/SFileAddFile.cpp')
-rw-r--r--src/SFileAddFile.cpp8
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);