diff options
Diffstat (limited to 'Build/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc')
-rw-r--r-- | Build/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Build/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc b/Build/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc index 5b02b14a784..4dae58e7e3d 100644 --- a/Build/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc +++ b/Build/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc @@ -5,7 +5,7 @@ // This file is licensed under the GPLv2 or later // // Copyright 2010 Hib Eris <hib@hiberis.nl> -// Copyright 2010 Albert Astals Cid <aacid@kde.org> +// Copyright 2010, 2017 Albert Astals Cid <aacid@kde.org> // //======================================================================== @@ -15,6 +15,7 @@ #include "CachedFile.h" #include "CurlCachedFile.h" +#include "ErrorCodes.h" //------------------------------------------------------------------------ // CurlPDFDocBuilder @@ -24,14 +25,16 @@ PDFDoc * CurlPDFDocBuilder::buildPDFDoc(const GooString &uri, GooString *ownerPassword, GooString *userPassword, void *guiDataA) { - Object obj; - CachedFile *cachedFile = new CachedFile( new CurlCachedFileLoader(), uri.copy()); - obj.initNull(); + if (cachedFile->getLength() == ((Guint) -1)) { + cachedFile->decRefCnt(); + return PDFDoc::ErrorPDFDoc(errOpenFile, uri.copy()); + } + BaseStream *str = new CachedFileStream( - cachedFile, 0, gFalse, cachedFile->getLength(), &obj); + cachedFile, 0, gFalse, cachedFile->getLength(), Object(objNull)); return new PDFDoc(str, ownerPassword, userPassword, guiDataA); } |