Clamp instead of checked_cast in TT2PDF
Bug: chromium:727938
Change-Id: I85fe329c9d19c1dd1303279b0a9aade2fcc3211c
Reviewed-on: https://pdfium-review.googlesource.com/6814
Commit-Queue: Nicolás Peña <npm@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
diff --git a/core/fpdfapi/font/cpdf_font.cpp b/core/fpdfapi/font/cpdf_font.cpp
index bdd3464..82f9be3 100644
--- a/core/fpdfapi/font/cpdf_font.cpp
+++ b/core/fpdfapi/font/cpdf_font.cpp
@@ -6,6 +6,7 @@
#include "core/fpdfapi/font/cpdf_font.h"
+#include <limits>
#include <memory>
#include <utility>
#include <vector>
@@ -486,8 +487,11 @@
int upm = FXFT_Get_Face_UnitsPerEM(face);
if (upm == 0)
return m;
- return pdfium::base::checked_cast<int>(
- (static_cast<double>(m) * 1000 + upm / 2) / upm);
+
+ return static_cast<int>(
+ pdfium::clamp((m * 1000.0 + upm / 2) / upm,
+ static_cast<double>(std::numeric_limits<int>::min()),
+ static_cast<double>(std::numeric_limits<int>::max())));
}
// static