vcl/headless/CairoCommon.cxx |    8 ++++++++
 1 file changed, 8 insertions(+)

New commits:
commit c776524c5dda930a6c82cb81b594769802445c79
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Tue Jun 14 15:10:33 2022 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Tue Jun 14 21:39:48 2022 +0200

    ofz#47668 OOM on massive line widths
    
    Change-Id: I310a9d438ef6f50ecc5931cea12fb26b7ed600c8
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135832
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/headless/CairoCommon.cxx b/vcl/headless/CairoCommon.cxx
index d44724e8a710..1888989b130b 100644
--- a/vcl/headless/CairoCommon.cxx
+++ b/vcl/headless/CairoCommon.cxx
@@ -707,6 +707,14 @@ bool CairoCommon::drawPolyLine(cairo_t* cr, 
basegfx::B2DRange* pExtents, const C
 
     cairo_set_line_join(cr, eCairoLineJoin);
     cairo_set_line_cap(cr, eCairoLineCap);
+    constexpr int MaxNormalLineWidth = 4096;
+    if (fLineWidth > MaxNormalLineWidth)
+    {
+        SAL_WARN("vcl.gdi", "drawPolyLine, suspicious line width of: " << 
fLineWidth);
+        static const bool bFuzzing = utl::ConfigManager::IsFuzzing();
+        if (bFuzzing)
+            fLineWidth = MaxNormalLineWidth;
+    }
     cairo_set_line_width(cr, fLineWidth);
     cairo_set_miter_limit(cr, fMiterLimit);
 

Reply via email to