Test invalid arguments for some FPDFLink_* APIs.
Change-Id: I65b10d57a83d48dbc7026f2de9b131f339acdf3a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/70876
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/fpdf_doc_embeddertest.cpp b/fpdfsdk/fpdf_doc_embeddertest.cpp
index 6aabe4a..b0918a6 100644
--- a/fpdfsdk/fpdf_doc_embeddertest.cpp
+++ b/fpdfsdk/fpdf_doc_embeddertest.cpp
@@ -206,7 +206,7 @@
FPDF_PAGE page = LoadPage(0);
ASSERT_TRUE(page);
- // Cover some NULL arg cases while we're at it.
+ // Cover some invalid argument cases while we're at it.
EXPECT_FALSE(FPDFLink_GetLinkAtPoint(nullptr, 150, 360));
EXPECT_EQ(-1, FPDFLink_GetLinkZOrderAtPoint(nullptr, 150, 360));
@@ -223,6 +223,11 @@
FPDF_DEST dest2 = FPDFLink_GetDest(document(), link2);
ASSERT_TRUE(dest2);
+ // Cover more invalid argument cases while we're at it.
+ EXPECT_FALSE(FPDFLink_GetDest(nullptr, nullptr));
+ EXPECT_FALSE(FPDFLink_GetDest(nullptr, link1));
+ EXPECT_FALSE(FPDFLink_GetDest(document(), nullptr));
+
EXPECT_EQ(0, FPDFDest_GetDestPageIndex(document(), dest1));
EXPECT_EQ(0, FPDFDest_GetDestPageIndex(document(), dest2));
@@ -348,6 +353,11 @@
FPDF_LINK second_link = FPDFLink_GetLinkAtPoint(page, 80.00, 633.00);
ScopedFPDFAnnotation second_annot(FPDFLink_GetAnnot(page, second_link));
EXPECT_EQ(1, FPDFPage_GetAnnotIndex(page, second_annot.get()));
+
+ // Also test invalid arguments.
+ EXPECT_FALSE(FPDFLink_GetAnnot(nullptr, nullptr));
+ EXPECT_FALSE(FPDFLink_GetAnnot(page, nullptr));
+ EXPECT_FALSE(FPDFLink_GetAnnot(nullptr, second_link));
}
UnloadPage(page);