summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2022-11-28 09:14:22 +0000
committerCaolán McNamara <caolanm@redhat.com>2022-11-28 11:16:51 +0100
commitb1b77b4005ceaeb2b9bc11d8a405bb5a467e1d86 (patch)
tree76ab881501504f3ef5042ca69a7b6f2ac5844844 /vcl
parent845dd688e5032c83db889cbf2ca033144dd1de32 (diff)
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 <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/headless/CairoCommon.cxx9
1 files changed, 6 insertions, 3 deletions
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);