summaryrefslogtreecommitdiff
path: root/source/fitz/output-png.c
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2016-07-19 14:30:40 +0100
committerRobin Watts <robin.watts@artifex.com>2016-07-20 17:45:06 +0100
commitc3d9f08d70530ff83c8e08a664614d85d162efb4 (patch)
treed3f8515ddab1616eb8ae557b6046ea12553e48e0 /source/fitz/output-png.c
parentf6792a3ed33fb3e27015accad2385c7b86a00559 (diff)
downloadmupdf-c3d9f08d70530ff83c8e08a664614d85d162efb4.tar.xz
Fix memory leak in fz_new_buffer_from_image_as_png.
Diffstat (limited to 'source/fitz/output-png.c')
-rw-r--r--source/fitz/output-png.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/source/fitz/output-png.c b/source/fitz/output-png.c
index d710a0cd..11696980 100644
--- a/source/fitz/output-png.c
+++ b/source/fitz/output-png.c
@@ -287,7 +287,18 @@ png_from_pixmap(fz_context *ctx, fz_pixmap *pix, int drop)
fz_buffer *
fz_new_buffer_from_image_as_png(fz_context *ctx, fz_image *image)
{
- return png_from_pixmap(ctx, fz_get_pixmap_from_image(ctx, image, NULL, NULL, NULL, NULL), 0);
+ fz_pixmap *pix = fz_get_pixmap_from_image(ctx, image, NULL, NULL, NULL, NULL);
+ fz_buffer *buf = NULL;
+
+ fz_var(buf);
+
+ fz_try(ctx)
+ buf = png_from_pixmap(ctx, pix, 0);
+ fz_always(ctx)
+ fz_drop_pixmap(ctx, pix);
+ fz_catch(ctx)
+ fz_rethrow(ctx);
+ return buf;
}
fz_buffer *