vcl/headless/SvpGraphicsBackend.cxx |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

New commits:
commit 937a96c7b8e9c02b6cc7dde3f2822d03c3c1cb4d
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Thu Oct 13 17:02:43 2022 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Fri Oct 14 09:52:52 2022 +0200

    ofz#52337 Direct-leak
    
    cairo starts leaking things when a surface is in an error state
    
    Change-Id: I0be0d9f8e3c8938073cec1aa765ab82826ceb6d9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141335
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/headless/SvpGraphicsBackend.cxx 
b/vcl/headless/SvpGraphicsBackend.cxx
index 21917cd4a258..a0bbd789b9a0 100644
--- a/vcl/headless/SvpGraphicsBackend.cxx
+++ b/vcl/headless/SvpGraphicsBackend.cxx
@@ -528,9 +528,12 @@ void SvpGraphicsBackend::drawMask(const SalTwoRect& rTR, 
const SalBitmap& rSalBi
     cairo_scale(cr, fXScale, fYScale);
     cairo_set_source_surface(cr, aSurface.getSurface(), -rTR.mnSrcX, 
-rTR.mnSrcY);
 
-    //tdf#133716 borders of upscaled images should not be blurred
-    cairo_pattern_t* sourcepattern = cairo_get_source(cr);
-    cairo_pattern_set_extend(sourcepattern, CAIRO_EXTEND_PAD);
+    if (cairo_status(cr) == CAIRO_STATUS_SUCCESS)
+    {
+        //tdf#133716 borders of upscaled images should not be blurred
+        cairo_pattern_t* sourcepattern = cairo_get_source(cr);
+        cairo_pattern_set_extend(sourcepattern, CAIRO_EXTEND_PAD);
+    }
 
     cairo_paint(cr);
 

Reply via email to