From 0b133988474ad5682db606e3aa9f0722e82eaa32 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 28 Jul 2015 11:23:22 -0700 Subject: 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 . --- fpdfsdk/src/fpdfformfill.cpp | 3 +++ fpdfsdk/src/fpdfformfill_embeddertest.cpp | 12 ++++++++++++ 2 files changed, 15 insertions(+) (limited to 'fpdfsdk') 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); +} -- cgit v1.2.3