src/lib/CDRCollector.cpp | 2 ++ src/lib/CDRParser.cpp | 9 +++++++-- src/lib/CDRZipStream.cpp | 2 ++ src/lib/libcdr_utils.cpp | 3 +++ 4 files changed, 14 insertions(+), 2 deletions(-)
New commits: commit 4cd2e20ed2c21dcf0b7b30a9e297d763f9910f0a Author: David Tardon <dtar...@redhat.com> Date: Sat May 11 15:59:06 2013 +0200 handle broken internal streams diff --git a/src/lib/CDRParser.cpp b/src/lib/CDRParser.cpp index 1dfcec5..9e1e8ed 100644 --- a/src/lib/CDRParser.cpp +++ b/src/lib/CDRParser.cpp @@ -2419,8 +2419,13 @@ bool libcdr::CDRParser::_redirectX6Chunk(WPXInputStream **input, unsigned &lengt { unsigned streamOffset = readU32(*input); *input = m_externalStreams[streamNumber]; - (*input)->seek(streamOffset, WPX_SEEK_SET); - return true; + if (*input) + { + (*input)->seek(streamOffset, WPX_SEEK_SET); + return !(*input)->atEOS(); + } + else + return false; } else if (streamNumber == 0xffffffff) return true; commit d6c0337db446820d14d2dc9c3c4edb22955dbc02 Author: David Tardon <dtar...@redhat.com> Date: Sat May 11 15:40:59 2013 +0200 return if profile creation failed diff --git a/src/lib/CDRCollector.cpp b/src/lib/CDRCollector.cpp index b4c0be8..bf386b4 100644 --- a/src/lib/CDRCollector.cpp +++ b/src/lib/CDRCollector.cpp @@ -62,6 +62,8 @@ void libcdr::CDRParserState::setColorTransform(const std::vector<unsigned char> if (profile.empty()) return; cmsHPROFILE tmpProfile = cmsOpenProfileFromMem(&profile[0], cmsUInt32Number(profile.size())); + if (!tmpProfile) + return; cmsHPROFILE tmpRGBProfile = cmsCreate_sRGBProfile(); cmsColorSpaceSignature signature = cmsGetColorSpace(tmpProfile); switch (signature) commit 687bf90feb08cbfffa27d9965775e6815e06a87e Author: David Tardon <dtar...@redhat.com> Date: Sat May 11 16:03:31 2013 +0200 avoid deref. of past-the-end iterator diff --git a/src/lib/CDRZipStream.cpp b/src/lib/CDRZipStream.cpp index 687bea3..d904057 100644 --- a/src/lib/CDRZipStream.cpp +++ b/src/lib/CDRZipStream.cpp @@ -206,6 +206,8 @@ bool libcdr::CDRZipStreamImpl::isZipStream() return false; if (!readCentralDirectory(end)) return false; + if (m_cdir.empty()) + return false; CentralDirectoryEntry entry = m_cdir.begin()->second; m_input->seek(entry.offset, WPX_SEEK_SET); LocalFileHeader header; commit 06c7ff400e89939c9cf5b274b032a21d61bf59fb Author: David Tardon <dtar...@redhat.com> Date: Sat May 11 16:02:09 2013 +0200 return early if there are no chars to append diff --git a/src/lib/libcdr_utils.cpp b/src/lib/libcdr_utils.cpp index 74d6ed4..3b095d1 100644 --- a/src/lib/libcdr_utils.cpp +++ b/src/lib/libcdr_utils.cpp @@ -427,6 +427,9 @@ void libcdr::appendCharacters(WPXString &text, std::vector<unsigned char> charac void libcdr::appendCharacters(WPXString &text, std::vector<unsigned char> characters) { + if (characters.empty()) + return; + UErrorCode status = U_ZERO_ERROR; UConverter *conv = ucnv_open("UTF-16LE", &status); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits