diff options
Diffstat (limited to 'fpdfsdk')
-rw-r--r-- | fpdfsdk/fpdf_structtree.cpp | 12 |
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 |