From 3c51806fe29870893aba912297006acdaa141784 Mon Sep 17 00:00:00 2001 From: Robin Watts Date: Wed, 24 Jul 2013 18:12:58 +0100 Subject: Fix leak of pdf_field_value. pdf_js_setup_event strdups the field value, then nothing ever uses it again. --- source/pdf/pdf-form.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/pdf/pdf-form.c b/source/pdf/pdf-form.c index 73c9d2e5..f6e2f721 100644 --- a/source/pdf/pdf-form.c +++ b/source/pdf/pdf-form.c @@ -436,10 +436,22 @@ void pdf_update_appearance(pdf_document *doc, pdf_annot *annot) { /* Apply formatting */ pdf_js_event e; + fz_context *ctx = doc->ctx; e.target = obj; e.value = pdf_field_value(doc, obj); - pdf_js_setup_event(doc->js, &e); + fz_try(ctx) + { + pdf_js_setup_event(doc->js, &e); + } + fz_always(ctx) + { + fz_free(ctx, e.value); + } + fz_catch(ctx) + { + fz_rethrow(ctx); + } execute_action(doc, obj, formatting); /* Update appearance from JS event.value */ pdf_update_text_appearance(doc, obj, pdf_js_get_event(doc->js)->value); -- cgit v1.2.3