summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fpdfsdk/fpdfview.cpp4
-rw-r--r--fpdfsdk/fpdfview_embeddertest.cpp6
2 files changed, 9 insertions, 1 deletions
diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp
index 964d769d2b..bf8daad958 100644
--- a/fpdfsdk/fpdfview.cpp
+++ b/fpdfsdk/fpdfview.cpp
@@ -275,8 +275,10 @@ bool CFPDF_FileStream::Flush() {
FPDF_DOCUMENT LoadDocumentImpl(
const CFX_RetainPtr<IFX_SeekableReadStream>& pFileAccess,
FPDF_BYTESTRING password) {
- if (!pFileAccess)
+ if (!pFileAccess) {
+ ProcessParseError(CPDF_Parser::FILE_ERROR);
return nullptr;
+ }
auto pParser = pdfium::MakeUnique<CPDF_Parser>();
pParser->SetPassword(password);
diff --git a/fpdfsdk/fpdfview_embeddertest.cpp b/fpdfsdk/fpdfview_embeddertest.cpp
index 00075876f6..0e478b448f 100644
--- a/fpdfsdk/fpdfview_embeddertest.cpp
+++ b/fpdfsdk/fpdfview_embeddertest.cpp
@@ -30,6 +30,12 @@ TEST_F(FPDFViewEmbeddertest, Document) {
EXPECT_EQ(-1, FPDF_GetSecurityHandlerRevision(document()));
}
+TEST_F(FPDFViewEmbeddertest, LoadNonexistentDocument) {
+ FPDF_DOCUMENT doc = FPDF_LoadDocument("nonexistent_document.pdf", "");
+ ASSERT_FALSE(doc);
+ EXPECT_EQ(static_cast<int>(FPDF_GetLastError()), FPDF_ERR_FILE);
+}
+
// See bug 465.
TEST_F(FPDFViewEmbeddertest, EmptyDocument) {
EXPECT_TRUE(CreateEmptyDocument());