diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2018-10-22 16:47:36 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2018-10-23 18:46:01 +0200 |
commit | 34de65f420dded27b47b78772454ccf111e6a320 (patch) | |
tree | b6c93cae3347944a2dda9bf3e92bb7dc2a75adb2 | |
parent | de23359d50364c20789f771ddf6616eb6dcdb45f (diff) | |
download | mupdf-34de65f420dded27b47b78772454ccf111e6a320.tar.xz |
Fix leak in pdfwrite pdf_dev_end_mask.
-rw-r--r-- | source/pdf/pdf-device.c | 8 |
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); |