[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.