diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2018-01-24 14:05:09 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2018-01-31 11:56:59 +0100 |
commit | 8a3257b01faa899dd9b5e35c6bb3403cd709c371 (patch) | |
tree | 9549de96252ff297ba78d23386c84d9c5d6c97b5 /source | |
parent | de39f005f12a1afc6973c1f5cec362d6545f70cb (diff) | |
download | mupdf-8a3257b01faa899dd9b5e35c6bb3403cd709c371.tar.xz |
Fix 698886: Don't try to load non-stream XObjects.
Diffstat (limited to 'source')
-rw-r--r-- | source/pdf/pdf-interpret.c | 2 | ||||
-rw-r--r-- | source/pdf/pdf-xobject.c | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/source/pdf/pdf-interpret.c b/source/pdf/pdf-interpret.c index 6ce63eb6..3aeeeae7 100644 --- a/source/pdf/pdf-interpret.c +++ b/source/pdf/pdf-interpret.c @@ -264,8 +264,6 @@ pdf_process_extgstate(fz_context *ctx, pdf_processor *proc, pdf_csi *csi, pdf_ob fz_var(xobj); group = pdf_dict_get(ctx, obj, PDF_NAME_G); - if (!group) - fz_throw(ctx, FZ_ERROR_SYNTAX, "cannot load softmask xobject (%d 0 R)", pdf_to_num(ctx, obj)); xobj = pdf_load_xobject(ctx, csi->doc, group); fz_try(ctx) diff --git a/source/pdf/pdf-xobject.c b/source/pdf/pdf-xobject.c index c7b03a4e..38a31c48 100644 --- a/source/pdf/pdf-xobject.c +++ b/source/pdf/pdf-xobject.c @@ -97,6 +97,9 @@ pdf_load_xobject(fz_context *ctx, pdf_document *doc, pdf_obj *dict) { pdf_xobject *form; + if (!pdf_is_stream(ctx, dict)) + fz_throw(ctx, FZ_ERROR_SYNTAX, "XObject must be a stream"); + if ((form = pdf_find_item(ctx, pdf_drop_xobject_imp, dict)) != NULL) return form; |