external/cairo/cairo/san.patch.0 | 11 +++++++++++ 1 file changed, 11 insertions(+)
New commits: commit 2b5dee8ee86cf92ed613a9cde61b0871f97e5b87 Author: Stephan Bergmann <sberg...@redhat.com> AuthorDate: Wed Sep 1 17:18:27 2021 +0200 Commit: Stephan Bergmann <sberg...@redhat.com> CommitDate: Thu Sep 2 08:43:53 2021 +0200 external/cairo: Avoid UBSan invalid-null-argument ...as seen during CppunitTest_sw_uiwriter4: > [_RUN_____] SwUiWriterTest4::testEmojiAutoCorrect cairo-surface.c:2852:28: runtime error: null pointer passed as argument 2, which is declared to never be null > /usr/include/string.h:44:28: note: nonnull attribute specified here > #0 in _cairo_surface_show_text_glyphs at workdir/UnpackedTarball/cairo/src/cairo-surface.c:2852:9 (instdir/program/libcairo.so.2 +0x9ac09e) > #1 in _cairo_gstate_show_text_glyphs at workdir/UnpackedTarball/cairo/src/cairo-gstate.c:2077:15 (instdir/program/libcairo.so.2 +0x65a4af) > #2 in _cairo_default_context_glyphs at workdir/UnpackedTarball/cairo/src/cairo-default-context.c:1315:12 (instdir/program/libcairo.so.2 +0x62404f) > #3 in cairo_show_glyphs at workdir/UnpackedTarball/cairo/src/cairo.c:3629:14 (instdir/program/libcairo.so.2 +0xa6c77f) > #4 in CairoTextRender::DrawTextLayout(GenericSalLayout const&, SalGraphics const&) at vcl/unx/generic/gdi/cairotextrender.cxx:265:9 (instdir/program/libvcllo.so +0xae46aa3) Change-Id: Ifa22046bb35a872c4db38130a7ae4c9b758ccbc6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121473 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sberg...@redhat.com> diff --git a/external/cairo/cairo/san.patch.0 b/external/cairo/cairo/san.patch.0 index bbf8f2d626c0..e6c98859244b 100644 --- a/external/cairo/cairo/san.patch.0 +++ b/external/cairo/cairo/san.patch.0 @@ -103,6 +103,17 @@ _cairo_box_from_rectangle (&limits, &extents->unbounded); _cairo_polygon_init (&polygon, &limits, 1); } +--- src/cairo-surface.c ++++ src/cairo-surface.c +@@ -2849,7 +2849,7 @@ + + if (_cairo_scaled_font_has_color_glyphs (scaled_font)) { + utf8_copy = malloc (sizeof (char) * utf8_len); +- memcpy (utf8_copy, utf8, sizeof (char) * utf8_len); ++ if (utf8_len != 0) memcpy (utf8_copy, utf8, sizeof (char) * utf8_len); + utf8 = utf8_copy; + + status = composite_color_glyphs (surface, op, --- src/cairo-tor-scan-converter.c +++ src/cairo-tor-scan-converter.c @@ -253,7 +253,7 @@