diff options
author | Tor Andersson <tor@ghostscript.com> | 2009-07-18 15:32:31 +0200 |
---|---|---|
committer | Tor Andersson <tor@ghostscript.com> | 2009-07-18 15:32:31 +0200 |
commit | 7e934e0b71855fcb702ffaea6aa2868b53d5281d (patch) | |
tree | 852c232b3dd82c6c5c40d5f1caaec2f5f09cb5d0 | |
parent | 7dc201a9cd2fb722264d7fe85a7ba73adc633669 (diff) | |
download | mupdf-7e934e0b71855fcb702ffaea6aa2868b53d5281d.tar.xz |
Treat /ID key in trailer as optional even when encryption is used.
-rw-r--r-- | mupdf/pdf_crypt.c | 12 | ||||
-rw-r--r-- | mupdf/pdf_xref.c | 2 |
2 files changed, 7 insertions, 7 deletions
diff --git a/mupdf/pdf_crypt.c b/mupdf/pdf_crypt.c index 7d06d1b4..eb163304 100644 --- a/mupdf/pdf_crypt.c +++ b/mupdf/pdf_crypt.c @@ -259,12 +259,12 @@ pdf_newdecrypt(pdf_crypt **cp, fz_obj *enc, fz_obj *id) return fz_throw("unsupported encryption algorithm: %d", crypt->v); } - if (!fz_isarray(id) || fz_arraylen(id) != 2) - goto cleanup; - obj = fz_arrayget(id, 0); - if (!fz_isstring(obj)) - goto cleanup; - crypt->id = fz_keepobj(obj); + if (fz_isarray(id) && fz_arraylen(id) == 2) + { + obj = fz_arrayget(id, 0); + if (!fz_isstring(obj)) + crypt->id = fz_keepobj(obj); + } crypt->keylen = crypt->len + 5; if (crypt->keylen > 16) diff --git a/mupdf/pdf_xref.c b/mupdf/pdf_xref.c index abcf0a10..510f1354 100644 --- a/mupdf/pdf_xref.c +++ b/mupdf/pdf_xref.c @@ -148,7 +148,7 @@ pdf_decryptxref(pdf_xref *xref) encrypt = fz_dictgets(xref->trailer, "Encrypt"); id = fz_dictgets(xref->trailer, "ID"); - if (encrypt && id) + if (encrypt) { if (fz_isnull(encrypt)) return fz_okay; |