external/liborcus/UnpackedTarball_liborcus.mk | 1 + external/liborcus/fix-crash-ooo55043-1.patch.0 | 17 +++++++++++++++++ 2 files changed, 18 insertions(+)
New commits: commit 50529b713221548d9aa7447d125b734b8de44fa0 Author: Caolán McNamara <caol...@redhat.com> Date: Sun Oct 11 21:20:37 2015 +0100 fix crash on examining ooo55043-1.odt etc Change-Id: I3b57f50b09d491bd1b021eb95587becbd3f169a2 diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk index e242cfc..f278049 100644 --- a/external/liborcus/UnpackedTarball_liborcus.mk +++ b/external/liborcus/UnpackedTarball_liborcus.mk @@ -16,6 +16,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,liborcus,1)) $(eval $(call gb_UnpackedTarball_add_patches,liborcus,\ external/liborcus/0001-workaround-a-linking-problem-on-windows.patch \ external/liborcus/rpath.patch.0 \ + external/liborcus/fix-crash-ooo55043-1.patch.0 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/liborcus/fix-crash-ooo55043-1.patch.0 b/external/liborcus/fix-crash-ooo55043-1.patch.0 new file mode 100644 index 0000000..58a97c0 --- /dev/null +++ b/external/liborcus/fix-crash-ooo55043-1.patch.0 @@ -0,0 +1,17 @@ +--- src/parser/zip_archive_stream.cpp ++++ src/parser/zip_archive_stream.cpp +@@ -91,8 +91,13 @@ + + void zip_archive_stream_blob::read(unsigned char* buffer, size_t length) const + { ++ if (!length) ++ return; + // First, make sure we have enough blob to satisfy the requested stream length. +- size_t length_available = m_size - tell(); ++ const size_t pos = tell(); ++ if (pos > m_size) ++ throw zip_error("Stream is seeked past end. No data available"); ++ const size_t length_available = m_size - pos; + if (length_available < length) + throw zip_error("There is not enough stream left to fill requested length."); +
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits