diff --git a/Common/OfficeFileFormatChecker2.cpp b/Common/OfficeFileFormatChecker2.cpp index ec8a16a627..e6a3b0331c 100644 --- a/Common/OfficeFileFormatChecker2.cpp +++ b/Common/OfficeFileFormatChecker2.cpp @@ -740,13 +740,33 @@ bool COfficeFileFormatChecker::isOfficeFile(const std::wstring &_fileName) if (OfficeUtils.IsArchive(fileName) == S_OK && (false == isPdfFormatFile(bufferDetect, dwDetectdBytes, sDocumentID))) { if (isOOXFormatFile(fileName)) + { + if (bufferDetect) + delete[] bufferDetect; + bufferDetect = NULL; return true; + } else if (isOpenOfficeFormatFile(fileName, sDocumentID)) - return true; + { + if (bufferDetect) + delete[] bufferDetect; + bufferDetect = NULL; + return true; + } else if (isOnlyOfficeFormatFile(fileName)) - return true; + { + if (bufferDetect) + delete[] bufferDetect; + bufferDetect = NULL; + return true; + } else if (isXpsFile(fileName)) - return true; + { + if (bufferDetect) + delete[] bufferDetect; + bufferDetect = NULL; + return true; + } } //-----------------------------------------------------------------------------------------------