diff options
-rw-r--r-- | fpdfsdk/fpdfview.cpp | 4 | ||||
-rw-r--r-- | fpdfsdk/fpdfview_embeddertest.cpp | 6 |
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()); |