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);