diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/source/win32/ooofilereader/basereader.cxx | 9 | ||||
-rw-r--r-- | shell/source/win32/zipfile/zipfile.cxx | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/shell/source/win32/ooofilereader/basereader.cxx b/shell/source/win32/ooofilereader/basereader.cxx index f4f694e6c683..754d37e87e0b 100644 --- a/shell/source/win32/ooofilereader/basereader.cxx +++ b/shell/source/win32/ooofilereader/basereader.cxx @@ -81,9 +81,12 @@ void CBaseReader::Initialize( const std::string& ContentName) if (m_ZipContent.empty()) m_ZipFile.GetUncompressedContent( ContentName, m_ZipContent ); - xml_parser parser; - parser.set_document_handler(this); // pass current reader as reader to the sax parser - parser.parse(&m_ZipContent[0], m_ZipContent.size()); + if (!m_ZipContent.empty()) + { + xml_parser parser; + parser.set_document_handler(this); // pass current reader as reader to the sax parser + parser.parse(&m_ZipContent[0], m_ZipContent.size()); + } } catch(std::exception& #if OSL_DEBUG_LEVEL > 0 diff --git a/shell/source/win32/zipfile/zipfile.cxx b/shell/source/win32/zipfile/zipfile.cxx index 13b319cc749c..381e52cf7642 100644 --- a/shell/source/win32/zipfile/zipfile.cxx +++ b/shell/source/win32/zipfile/zipfile.cxx @@ -261,6 +261,8 @@ static bool areHeadersConsistent(const LocalFileHeader &header, const CentralDir static bool findCentralDirectoryEnd(StreamInterface *stream) { + if (!stream) + return false; stream->sseek(0, SEEK_SET); try { @@ -483,7 +485,7 @@ void ZipFile::GetUncompressedContent( ContentBuffer.clear(); return; } - (void)inflateEnd(&strm); + (void)inflateEnd(&strm); } } |