diff options
Diffstat (limited to 'external/libvisio')
-rw-r--r-- | external/libvisio/UnpackedTarball_libvisio.mk | 4 | ||||
-rw-r--r-- | external/libvisio/ubsan.patch | 10 |
2 files changed, 14 insertions, 0 deletions
diff --git a/external/libvisio/UnpackedTarball_libvisio.mk b/external/libvisio/UnpackedTarball_libvisio.mk index f9467c531296..aa8b48fb40b9 100644 --- a/external/libvisio/UnpackedTarball_libvisio.mk +++ b/external/libvisio/UnpackedTarball_libvisio.mk @@ -13,6 +13,10 @@ $(eval $(call gb_UnpackedTarball_set_tarball,libvisio,$(VISIO_TARBALL))) $(eval $(call gb_UnpackedTarball_set_patchlevel,libvisio,0)) +$(eval $(call gb_UnpackedTarball_add_patches,libvisio, \ + external/libvisio/ubsan.patch \ +)) + ifeq ($(COM_IS_CLANG),TRUE) ifneq ($(filter -fsanitize=%,$(CC)),) $(eval $(call gb_UnpackedTarball_add_patches,libvisio, \ diff --git a/external/libvisio/ubsan.patch b/external/libvisio/ubsan.patch new file mode 100644 index 000000000000..d80f7ebe5bbe --- /dev/null +++ b/external/libvisio/ubsan.patch @@ -0,0 +1,10 @@ +--- src/lib/VSDContentCollector.cpp ++++ src/lib/VSDContentCollector.cpp +@@ -3285,6 +3285,7 @@ + _handleLevelChange(level); + librevenge::RVNGString text; + std::vector<unsigned char> tmpData(layerMem.m_data.size()); ++ if (!layerMem.m_data.empty()) + memcpy(&tmpData[0], layerMem.m_data.getDataBuffer(), layerMem.m_data.size()); + appendCharacters(text, tmpData, layerMem.m_format); + |