diff options
author | unknown <E:\Ladik\Mail> | 2015-01-18 17:34:34 +0100 |
---|---|---|
committer | unknown <E:\Ladik\Mail> | 2015-01-18 17:34:34 +0100 |
commit | 23ffb9d452397b3ca1742854ebbeeeb305b98bc4 (patch) | |
tree | 796714e507d68e8ecbda7313deb163fa586cd1a5 /src/SFileOpenArchive.cpp | |
parent | e9842c38cf9c55f682b2a411cea84ee59d69ec92 (diff) |
+ More paratemer checking to make nitpickers happy
Diffstat (limited to 'src/SFileOpenArchive.cpp')
-rw-r--r-- | src/SFileOpenArchive.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/SFileOpenArchive.cpp b/src/SFileOpenArchive.cpp index 19d18c2..80ac9e1 100644 --- a/src/SFileOpenArchive.cpp +++ b/src/SFileOpenArchive.cpp @@ -470,12 +470,12 @@ bool WINAPI SFileSetDownloadCallback(HANDLE hMpq, SFILE_DOWNLOAD_CALLBACK Downlo bool WINAPI SFileFlushArchive(HANDLE hMpq) { - TMPQArchive * ha = (TMPQArchive *)hMpq; + TMPQArchive * ha; int nResultError = ERROR_SUCCESS; int nError; // Do nothing if 'hMpq' is bad parameter - if(!IsValidMpqHandle(hMpq)) + if((ha = IsValidMpqHandle(hMpq)) == NULL) { SetLastError(ERROR_INVALID_HANDLE); return false; @@ -540,8 +540,15 @@ bool WINAPI SFileFlushArchive(HANDLE hMpq) bool WINAPI SFileCloseArchive(HANDLE hMpq) { - TMPQArchive * ha = (TMPQArchive *)hMpq; - bool bResult; + TMPQArchive * ha = IsValidMpqHandle(hMpq); + bool bResult = false; + + // Only if the handle is valid + if(ha == NULL) + { + SetLastError(ERROR_INVALID_HANDLE); + return false; + } // Invalidate the add file callback so it won't be called // when saving (listfile) and (attributes) @@ -555,4 +562,3 @@ bool WINAPI SFileCloseArchive(HANDLE hMpq) FreeArchiveHandle(ha); return bResult; } - |