From 4ce90ae4dcfabb6ddf19777165f585b24691876b Mon Sep 17 00:00:00 2001
From: Tor Andersson <tor.andersson@artifex.com>
Date: Fri, 18 Mar 2016 13:16:38 +0100
Subject: Fix error handling in fz_save_pixmap_as_pam.

---
 source/fitz/pixmap.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/source/fitz/pixmap.c b/source/fitz/pixmap.c
index a7d26b17..2b72cd00 100644
--- a/source/fitz/pixmap.c
+++ b/source/fitz/pixmap.c
@@ -725,9 +725,15 @@ void
 fz_save_pixmap_as_pam(fz_context *ctx, fz_pixmap *pixmap, char *filename, int savealpha)
 {
 	fz_output *out = fz_new_output_with_path(ctx, filename, 0);
-	fz_write_pam_header(ctx, out, pixmap->w, pixmap->h, pixmap->n, savealpha);
-	fz_write_pam_band(ctx, out, pixmap->w, pixmap->h, pixmap->n, 0, pixmap->h, pixmap->samples, savealpha);
-	fz_drop_output(ctx, out);
+	fz_try(ctx)
+	{
+		fz_write_pam_header(ctx, out, pixmap->w, pixmap->h, pixmap->n, savealpha);
+		fz_write_pam_band(ctx, out, pixmap->w, pixmap->h, pixmap->n, 0, pixmap->h, pixmap->samples, savealpha);
+	}
+	fz_always(ctx)
+		fz_drop_output(ctx, out);
+	fz_catch(ctx)
+		fz_rethrow(ctx);
 }
 
 /*
-- 
cgit v1.2.3