diff options
author | Caolán McNamara <caolanm@redhat.com> | 2022-11-28 09:14:22 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2022-11-28 11:16:51 +0100 |
commit | b1b77b4005ceaeb2b9bc11d8a405bb5a467e1d86 (patch) | |
tree | 76ab881501504f3ef5042ca69a7b6f2ac5844844 /vcl | |
parent | 845dd688e5032c83db889cbf2ca033144dd1de32 (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.cxx | 9 |
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); |