summaryrefslogtreecommitdiff
path: root/fpdfsdk/fpdfedittext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk/fpdfedittext.cpp')
-rw-r--r--fpdfsdk/fpdfedittext.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/fpdfsdk/fpdfedittext.cpp b/fpdfsdk/fpdfedittext.cpp
index 22c6266ec1..7bbb6a857c 100644
--- a/fpdfsdk/fpdfedittext.cpp
+++ b/fpdfsdk/fpdfedittext.cpp
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <algorithm>
+#include <limits>
#include <map>
#include <memory>
#include <utility>
@@ -259,7 +261,10 @@ void* LoadSimpleFont(CPDF_Document* pDoc,
fontDict->SetNewFor<CPDF_Number>("FirstChar", static_cast<int>(currentChar));
CPDF_Array* widthsArray = pDoc->NewIndirect<CPDF_Array>();
while (true) {
- widthsArray->AddNew<CPDF_Number>(pFont->GetGlyphWidth(glyphIndex));
+ uint32_t width =
+ std::min(pFont->GetGlyphWidth(glyphIndex),
+ static_cast<uint32_t>(std::numeric_limits<int>::max()));
+ widthsArray->AddNew<CPDF_Number>(static_cast<int>(width));
uint32_t nextChar =
FXFT_Get_Next_Char(pFont->GetFace(), currentChar, &glyphIndex);
// Simple fonts have 1-byte charcodes only.