Check input param consistently in FPDFPageObjMark_*.
Consistently convert the input FPDF_PAGEOBJECTMARK parameter using
CPDFContentMarkItemFromFPDFPageObjectMark(), and then check the
CPDF_ContentMarkItem pointer.
Change-Id: Id38f7c04d114120b46cdc27de2e069e7d4815fdb
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/70475
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/fpdf_editpage.cpp b/fpdfsdk/fpdf_editpage.cpp
index eb27a51..9c0a83a 100644
--- a/fpdfsdk/fpdf_editpage.cpp
+++ b/fpdfsdk/fpdf_editpage.cpp
@@ -345,11 +345,10 @@
void* buffer,
unsigned long buflen,
unsigned long* out_buflen) {
- if (!mark || !out_buflen)
- return false;
-
const CPDF_ContentMarkItem* pMarkItem =
CPDFContentMarkItemFromFPDFPageObjectMark(mark);
+ if (!pMarkItem || !out_buflen)
+ return false;
*out_buflen = Utf16EncodeMaybeCopyAndReturnLength(
WideString::FromUTF8(pMarkItem->GetName().AsStringView()), buffer,
@@ -359,11 +358,10 @@
FPDF_EXPORT int FPDF_CALLCONV
FPDFPageObjMark_CountParams(FPDF_PAGEOBJECTMARK mark) {
- if (!mark)
- return -1;
-
const CPDF_ContentMarkItem* pMarkItem =
CPDFContentMarkItemFromFPDFPageObjectMark(mark);
+ if (!pMarkItem)
+ return -1;
const CPDF_Dictionary* pParams = pMarkItem->GetParam();
return pParams ? pParams->size() : 0;