summaryrefslogtreecommitdiff
path: root/fpdfsdk
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk')
-rw-r--r--fpdfsdk/fpdf_structtree.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/fpdfsdk/fpdf_structtree.cpp b/fpdfsdk/fpdf_structtree.cpp
index 483d894f6e..30b7c3fce7 100644
--- a/fpdfsdk/fpdf_structtree.cpp
+++ b/fpdfsdk/fpdf_structtree.cpp
@@ -55,15 +55,21 @@ FPDF_StructTree_Close(FPDF_STRUCTTREE struct_tree) {
FPDF_EXPORT int FPDF_CALLCONV
FPDF_StructTree_CountChildren(FPDF_STRUCTTREE struct_tree) {
CPDF_StructTree* tree = ToStructTree(struct_tree);
- return tree ? tree->CountTopElements() : -1;
+ if (!tree)
+ return -1;
+
+ pdfium::base::CheckedNumeric<int> tmp_size = tree->CountTopElements();
+ return tmp_size.ValueOrDefault(-1);
}
FPDF_EXPORT FPDF_STRUCTELEMENT FPDF_CALLCONV
FPDF_StructTree_GetChildAtIndex(FPDF_STRUCTTREE struct_tree, int index) {
CPDF_StructTree* tree = ToStructTree(struct_tree);
- if (!tree || index < 0 || index >= tree->CountTopElements())
+ if (!tree || index < 0 ||
+ static_cast<size_t>(index) >= tree->CountTopElements()) {
return nullptr;
- return tree->GetTopElement(index);
+ }
+ return tree->GetTopElement(static_cast<size_t>(index));
}
FPDF_EXPORT unsigned long FPDF_CALLCONV