[gs-commits] mupdf 1.16.1.81 pdf_signature_contents() now frees its ou

[email protected] (Sebastian Rasmussen) Fri, 4 Oct 2019 10:28:15 +0000 (UTC)
Newsgroups gmane.comp.printing.ghostscript.cvs
Message-ID <[email protected]>
commit 1e04c1da5809861885777d2ff3c39b041df236af
Author: Sebastian Rasmussen <[email protected]>
Date:   Fri Oct 4 12:12:06 2019 +0200

    pdf_signature_contents() now frees its output buffer upon exception.

diff --git a/source/pdf/pdf-form.c b/source/pdf/pdf-form.c
index 9b5d044..abde08b 100644
--- a/source/pdf/pdf-form.c
+++ b/source/pdf/pdf-form.c
@@ -1299,21 +1299,34 @@ int pdf_signature_contents(fz_context *ctx, pdf_document *doc, pdf_obj *signatur
 {
 	pdf_obj *v_ref = pdf_dict_get(ctx, signature, PDF_NAME(V));
 	pdf_obj *v_obj = pdf_load_unencrypted_object(ctx, doc, pdf_to_num(ctx, v_ref));
+	char *copy = NULL;
 	int len;
+
+	fz_var(copy);
 	fz_try(ctx)
 	{
 		pdf_obj *c = pdf_dict_get(ctx, v_obj, PDF_NAME(Contents));
+		char *s;
+
+		s = pdf_to_str_buf(ctx, c);
 		len = pdf_to_str_len(ctx, c);
+
 		if (contents)
 		{
-			*contents = fz_malloc(ctx, len);
-			memcpy(*contents, pdf_to_str_buf(ctx, c), len);
+			copy = fz_malloc(ctx, len);
+			memcpy(copy, s, len);
 		}
 	}
 	fz_always(ctx)
 		pdf_drop_obj(ctx, v_obj);
 	fz_catch(ctx)
+	{
+		fz_free(ctx, copy);
 		fz_rethrow(ctx);
+	}
+
+	if (contents)
+		*contents = copy;
 	return len;
 }
 

http://git.ghostscript.com/?p=mupdf.git;a=commit;h=1e04c1da5809861885777d2ff3c39b041df236af

--
MuPDF library
Artifex Software, Inc.