From d1a588c6ce03425773594381a0966434016813b1 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 28 Jul 2015 11:08:51 -0700 Subject: Fix segv above CPDFSDK_Document::GetPageView() The refactoring at fb07e28 removed a null handle check. BUG=514690 R=thestig@chromium.org Review URL: https://codereview.chromium.org/1261923003 . --- fpdfsdk/src/fpdfformfill.cpp | 3 +++ fpdfsdk/src/fpdfformfill_embeddertest.cpp | 12 ++++++++++++ 2 files changed, 15 insertions(+) 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); +} -- cgit v1.2.3