From a70a9800220851555272cab6a61e2bb00b867ffb Mon Sep 17 00:00:00 2001 From: Ladislav Date: Sun, 12 Jan 2014 13:04:30 +0100 Subject: + Fixed crash when ha == NULL in SFileCreateFile --- src/SFileAddFile.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/SFileAddFile.cpp b/src/SFileAddFile.cpp index fdc1524..1fa5873 100644 --- a/src/SFileAddFile.cpp +++ b/src/SFileAddFile.cpp @@ -685,16 +685,19 @@ bool WINAPI SFileCreateFile( nError = ERROR_INVALID_PARAMETER; // Don't allow to add file if the MPQ is open for read only - if(ha->dwFlags & MPQ_FLAG_READ_ONLY) - nError = ERROR_ACCESS_DENIED; + if(nError == ERROR_SUCCESS) + { + if(ha->dwFlags & MPQ_FLAG_READ_ONLY) + nError = ERROR_ACCESS_DENIED; - // Don't allow to add a file under pseudo-file name - if(IsPseudoFileName(szArchivedName, NULL)) - nError = ERROR_INVALID_PARAMETER; + // Don't allow to add a file under pseudo-file name + if(IsPseudoFileName(szArchivedName, NULL)) + nError = ERROR_INVALID_PARAMETER; - // Don't allow to add any of the internal files - if(IsInternalMpqFileName(szArchivedName)) - nError = ERROR_INTERNAL_FILE; + // Don't allow to add any of the internal files + if(IsInternalMpqFileName(szArchivedName)) + nError = ERROR_INTERNAL_FILE; + } // Perform validity check of the MPQ flags if(nError == ERROR_SUCCESS) -- cgit v1.2.3