summaryrefslogtreecommitdiff
path: root/fpdfsdk
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2015-07-28 11:23:22 -0700
committerTom Sepez <tsepez@chromium.org>2015-07-28 11:23:22 -0700
commit0b133988474ad5682db606e3aa9f0722e82eaa32 (patch)
treeb9e68923e534100be762f38e3a6ff2c8d4434074 /fpdfsdk
parentd191c3a7f43272019d166bb1fa040eca60650e7d (diff)
downloadpdfium-0b133988474ad5682db606e3aa9f0722e82eaa32.tar.xz
Merge to XFA: Fix segv above CPDFSDK_Document::GetPageView()
Original Review URL: https://codereview.chromium.org/1261923003 . (cherry picked from commit d1a588c6ce03425773594381a0966434016813b1) BUG=514690 R=thestig@chromium.org TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1254383007 .
Diffstat (limited to 'fpdfsdk')
-rw-r--r--fpdfsdk/src/fpdfformfill.cpp3
-rw-r--r--fpdfsdk/src/fpdfformfill_embeddertest.cpp12
2 files changed, 15 insertions, 0 deletions
diff --git a/fpdfsdk/src/fpdfformfill.cpp b/fpdfsdk/src/fpdfformfill.cpp
index 20beedd84a..aa1c04a5c4 100644
--- a/fpdfsdk/src/fpdfformfill.cpp
+++ b/fpdfsdk/src/fpdfformfill.cpp
@@ -31,6 +31,9 @@ CPDFSDK_InterForm* FormHandleToInterForm(FPDF_FORMHANDLE hHandle)
CPDFSDK_PageView* FormHandleToPageView(FPDF_FORMHANDLE hHandle, FPDF_PAGE page)
{
+ if (!page)
+ return nullptr;
+
CPDFSDK_Document* pSDKDoc = FormHandleToSDKDoc(hHandle);
return pSDKDoc ? pSDKDoc->GetPageView((CPDFXFA_Page*)page, TRUE) : nullptr;
}
diff --git a/fpdfsdk/src/fpdfformfill_embeddertest.cpp b/fpdfsdk/src/fpdfformfill_embeddertest.cpp
index 615ada99f9..1c38770edb 100644
--- a/fpdfsdk/src/fpdfformfill_embeddertest.cpp
+++ b/fpdfsdk/src/fpdfformfill_embeddertest.cpp
@@ -41,3 +41,15 @@ TEST_F(FPDFFormFillEmbeddertest, BUG_487928) {
delegate.AdvanceTime(5000);
UnloadPage(page);
}
+
+TEST_F(FPDFFormFillEmbeddertest, BUG_514690) {
+ EXPECT_TRUE(OpenDocument("testing/resources/hello_world.pdf"));
+ FPDF_PAGE page = LoadPage(0);
+ EXPECT_NE(nullptr, page);
+
+ // Test that FORM_OnMouseMove() etc. permit null HANDLES and PAGES.
+ FORM_OnMouseMove(nullptr, page, 0, 10.0, 10.0);
+ FORM_OnMouseMove(form_handle(), nullptr, 0, 10.0, 10.0);
+
+ UnloadPage(page);
+}