diff options
author | Tom Sepez <tsepez@chromium.org> | 2015-07-28 11:08:51 -0700 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2015-07-28 11:08:51 -0700 |
commit | d1a588c6ce03425773594381a0966434016813b1 (patch) | |
tree | a7f4a8c0f76087c540b18028c0a93ce5ddb311ea | |
parent | a25b4bca69ab26d174edb8cefbdcfc1a0353915a (diff) | |
download | pdfium-chromium/2472.tar.xz |
Fix segv above CPDFSDK_Document::GetPageView()chromium/2473chromium/2472chromium/2471chromium/2470chromium/2469chromium/2468
The refactoring at fb07e28 removed a null handle check.
BUG=514690
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1261923003 .
-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); +} |