From 34de65f420dded27b47b78772454ccf111e6a320 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Mon, 22 Oct 2018 16:47:36 +0200 Subject: Fix leak in pdfwrite pdf_dev_end_mask. --- source/pdf/pdf-device.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'source') diff --git a/source/pdf/pdf-device.c b/source/pdf/pdf-device.c index 0103e9a7..4dd729b8 100644 --- a/source/pdf/pdf-device.c +++ b/source/pdf/pdf-device.c @@ -940,6 +940,7 @@ pdf_dev_begin_mask(fz_context *ctx, fz_device *dev, fz_rect bbox, int luminosity fz_always(ctx) { pdf_drop_obj(ctx, smask); + pdf_drop_obj(ctx, egs); } fz_catch(ctx) { @@ -959,14 +960,13 @@ pdf_dev_end_mask(fz_context *ctx, fz_device *dev) pdf_device *pdev = (pdf_device*)dev; pdf_document *doc = pdev->doc; gstate *gs = CURRENT_GSTATE(pdev); - fz_buffer *buf = fz_keep_buffer(ctx, gs->buf); pdf_obj *form_ref = (pdf_obj *)gs->on_pop_arg; /* Here we do part of the pop, but not all of it. */ pdf_dev_end_text(ctx, pdev); - fz_append_string(ctx, buf, "Q\n"); - pdf_update_stream(ctx, doc, form_ref, buf, 0); - fz_drop_buffer(ctx, buf); + fz_append_string(ctx, gs->buf, "Q\n"); + pdf_update_stream(ctx, doc, form_ref, gs->buf, 0); + fz_drop_buffer(ctx, gs->buf); gs->buf = fz_keep_buffer(ctx, gs[-1].buf); gs->on_pop_arg = NULL; pdf_drop_obj(ctx, form_ref); -- cgit v1.2.3