summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2018-10-02 02:21:19 +0800
committerTor Andersson <tor.andersson@artifex.com>2018-10-23 18:46:01 +0200
commitdd3f991e192029bc238453105e6f837996666abf (patch)
tree19c92eb68b07dcc1550093cd06099bf8cdc222b4 /source
parent914900f42d027778506cde4281cb495afeea09e6 (diff)
downloadmupdf-dd3f991e192029bc238453105e6f837996666abf.tar.xz
Drop new object upon exception grafting objects.
Diffstat (limited to 'source')
-rw-r--r--source/pdf/pdf-graft.c5
1 files changed, 4 insertions, 1 deletions
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);