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

New commits:
commit b1b77b4005ceaeb2b9bc11d8a405bb5a467e1d86
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon Nov 28 09:14:22 2022 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon Nov 28 11:16:51 2022 +0100

    ofz#53820 Direct-leak
    
    cairo_get_source leaks if cairo is in an error state
    
    Change-Id: I1ddcf801d5a3fc0944f14001cbc7d152b2071c89
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143364
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/headless/CairoCommon.cxx b/vcl/headless/CairoCommon.cxx
index 322b1e838463..4f3a4e869746 100644
--- a/vcl/headless/CairoCommon.cxx
+++ b/vcl/headless/CairoCommon.cxx
@@ -911,9 +911,12 @@ basegfx::B2DRange renderWithOperator(cairo_t* cr, const 
SalTwoRect& rTR, cairo_s
     cairo_save(cr);
     cairo_set_source_surface(cr, source, -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_set_operator(cr, eOperator);
     cairo_paint(cr);

Reply via email to