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 @@

Reply via email to