From d9abee07b7aeb17892350b76ab61ec4f6df33d4a Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Sat, 2 May 2009 02:45:17 +0200 Subject: Handle corrupt stream dictionary. --- mupdf/pdf_stream.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mupdf/pdf_stream.c b/mupdf/pdf_stream.c index 523145da..77ff809a 100644 --- a/mupdf/pdf_stream.c +++ b/mupdf/pdf_stream.c @@ -192,9 +192,14 @@ buildrawfilter(fz_filter **filterp, pdf_xref *xref, fz_obj *stmobj, int oid, int int len; stmlen = fz_dictgets(stmobj, "Length"); - error = pdf_resolve(&stmlen, xref); - if (error) - return fz_rethrow(error, "cannot resolve stream /Length"); + if (stmlen) + { + error = pdf_resolve(&stmlen, xref); + if (error) + return fz_rethrow(error, "cannot resolve stream /Length"); + } + if (!fz_isint(stmlen)) + return fz_throw("corrupt stream length"); len = fz_toint(stmlen); fz_dropobj(stmlen); -- cgit v1.2.3