From dd3f991e192029bc238453105e6f837996666abf Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Tue, 2 Oct 2018 02:21:19 +0800 Subject: Drop new object upon exception grafting objects. --- source/pdf/pdf-graft.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/pdf/pdf-graft.c b/source/pdf/pdf-graft.c index 50be9790..2fe4f26c 100644 --- a/source/pdf/pdf-graft.c +++ b/source/pdf/pdf-graft.c @@ -120,6 +120,7 @@ pdf_graft_mapped_object(fz_context *ctx, pdf_graft_map *map, pdf_obj *obj) fz_var(buffer); fz_var(ref); + fz_var(new_obj); fz_try(ctx) { @@ -131,7 +132,6 @@ pdf_graft_mapped_object(fz_context *ctx, pdf_graft_map *map, pdf_obj *obj) /* Return a ref to the new_obj making sure to attach any stream */ pdf_update_object(ctx, map->dst, new_num, new_obj); - pdf_drop_obj(ctx, new_obj); ref = pdf_new_indirect(ctx, map->dst, new_num, 0); if (pdf_is_stream(ctx, obj)) { @@ -140,7 +140,10 @@ pdf_graft_mapped_object(fz_context *ctx, pdf_graft_map *map, pdf_obj *obj) } } fz_always(ctx) + { + pdf_drop_obj(ctx, new_obj); fz_drop_buffer(ctx, buffer); + } fz_catch(ctx) { pdf_drop_obj(ctx, ref); -- cgit v1.2.3