external/cairo/UnpackedTarball_cairo.mk             |    1 +
 external/cairo/cairo/cairo.ofz57493-Timeout.patch.1 |   14 ++++++++++++++
 2 files changed, 15 insertions(+)

New commits:
commit 354cfa20af48207ac35ac14b832b7e44836726d7
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Thu May 11 10:39:01 2023 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Thu May 11 14:38:36 2023 +0200

    ofz#57493 Timeout in _cairo_bo_event_queue_sort with > 200000 edges
    
    Change-Id: Id925da604647973977c25bbbfa57b1a69382e063
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151665
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/external/cairo/UnpackedTarball_cairo.mk 
b/external/cairo/UnpackedTarball_cairo.mk
index de1d9296434d..a3598f0d5150 100644
--- a/external/cairo/UnpackedTarball_cairo.mk
+++ b/external/cairo/UnpackedTarball_cairo.mk
@@ -30,6 +30,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,cairo,\
        external/cairo/cairo/0025-libtool-pass-use-ld.patch \
        external/cairo/cairo/libcairo-bundled-soname.patch.0 \
        external/cairo/cairo/cairo-fd-hack.patch.0 \
+       external/cairo/cairo/cairo.ofz57493-Timeout.patch.1 \
 ))
 
 ifeq ($(OS),iOS)
diff --git a/external/cairo/cairo/cairo.ofz57493-Timeout.patch.1 
b/external/cairo/cairo/cairo.ofz57493-Timeout.patch.1
new file mode 100644
index 000000000000..ba58973eee9c
--- /dev/null
+++ b/external/cairo/cairo/cairo.ofz57493-Timeout.patch.1
@@ -0,0 +1,14 @@
+--- a/src/cairo-bentley-ottmann-rectilinear.c  2023-05-11 10:34:16.206027850 
+0100
++++ b/src/cairo-bentley-ottmann-rectilinear.c  2023-05-11 10:34:21.480787694 
+0100
+@@ -455,6 +455,11 @@
+     if (unlikely (polygon->num_edges == 0))
+       return CAIRO_STATUS_SUCCESS;
+ 
++#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
++    if (unlikely (polygon->num_edges > 200000))
++      return CAIRO_STATUS_SUCCESS;
++#endif
++
+     num_events = 2 * polygon->num_edges;
+ 
+     events = stack_events;

Reply via email to