diff options
-rw-r--r-- | fpdfsdk/src/fpdfformfill.cpp | 3 | ||||
-rw-r--r-- | fpdfsdk/src/fpdfformfill_embeddertest.cpp | 12 |
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); +} |