summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2021-09-01 17:18:27 +0200
committerStephan Bergmann <sbergman@redhat.com>2021-09-02 08:43:53 +0200
commit2b5dee8ee86cf92ed613a9cde61b0871f97e5b87 (patch)
tree50a3f6a857da5f775050566fb44884b60c5a5256 /external
parenta5bb0e66492118b79da5fef31f8d2bd686947354 (diff)
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 <sbergman@redhat.com>
Diffstat (limited to 'external')
-rw-r--r--external/cairo/cairo/san.patch.011
1 files changed, 11 insertions, 0 deletions
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 @@