summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 d21d5d209d..42e94c789d 100644
--- a/fpdfsdk/src/fpdfformfill.cpp
+++ b/fpdfsdk/src/fpdfformfill.cpp
@@ -27,6 +27,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((CPDF_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);
+}