diff options
author | Jane Liu <janeliulwq@google.com> | 2017-08-22 16:28:05 -0400 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-08-22 21:06:37 +0000 |
commit | 8a1081fbf7f9fac94b32c59b5851387abdd24dea (patch) | |
tree | 60cb064ca85e72c1a2cb4a2fee7c406838e78597 | |
parent | ed2f2769bf113df0088608fa5e949e3e48216a04 (diff) | |
download | pdfium-8a1081fbf7f9fac94b32c59b5851387abdd24dea.tar.xz |
Corrected the error setting after calling FPDF_LoadDocument()
Currently, if FPDF_LoadDocument() is called on a nonexistent file, the
returned FPDF_DOCUMENT will be null, but FPDF_GetLastError() will return
an error of FPDF_ERR_SUCCESS, i.e. no error.
This CL corrects this behavior by updating the error to be FPDF_ERR_FILE
when the file doesn't exist.
Bug=pdfium:452
Change-Id: I3c3ec3a64e049636ddfb2ba5cb5f2745a0e19b6b
Reviewed-on: https://pdfium-review.googlesource.com/11650
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Jane Liu <janeliulwq@google.com>
-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()); |