summaryrefslogtreecommitdiff
path: root/Build/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc')
-rw-r--r--Build/source/libs/poppler/poppler-src/poppler/CurlPDFDocBuilder.cc13
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);
}