summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-10-22 16:47:36 +0200
committerTor Andersson <tor.andersson@artifex.com>2018-10-23 18:46:01 +0200
commit34de65f420dded27b47b78772454ccf111e6a320 (patch)
treeb6c93cae3347944a2dda9bf3e92bb7dc2a75adb2 /source
parentde23359d50364c20789f771ddf6616eb6dcdb45f (diff)
downloadmupdf-34de65f420dded27b47b78772454ccf111e6a320.tar.xz
Fix leak in pdfwrite pdf_dev_end_mask.
Diffstat (limited to 'source')
-rw-r--r--source/pdf/pdf-device.c8
1 files changed, 4 insertions, 4 deletions
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);