summaryrefslogtreecommitdiff
path: root/core/fxcrt/fx_extension_unittest.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2018-05-15 18:59:46 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-05-15 18:59:46 +0000
commit6137483528225c1dc102db44fb2c2bce6c256534 (patch)
tree8dc95914968969ce433665d08a2d60bda1cfb953 /core/fxcrt/fx_extension_unittest.cpp
parent6595905a9e6080cfc9a99310b597d66463a7eb2f (diff)
downloadpdfium-6137483528225c1dc102db44fb2c2bce6c256534.tar.xz
Cap size of exponent when converting floats
When detecting the exponent on a floating point number, cap the maximum amount we'll multiply by otherwise we can get excessivly large numbers. Bug: chromium:843074 Change-Id: I6a8d1b4c20b66e305d2727f464119b1e74beb699 Reviewed-on: https://pdfium-review.googlesource.com/32570 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fxcrt/fx_extension_unittest.cpp')
-rw-r--r--core/fxcrt/fx_extension_unittest.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/core/fxcrt/fx_extension_unittest.cpp b/core/fxcrt/fx_extension_unittest.cpp
index f7e07c7c65..155b7014b7 100644
--- a/core/fxcrt/fx_extension_unittest.cpp
+++ b/core/fxcrt/fx_extension_unittest.cpp
@@ -134,6 +134,14 @@ TEST(fxcrt, FXSYS_wcstof) {
EXPECT_FLOAT_EQ(1.234e10f, FXSYS_wcstof(L"1.234E10", 8, &used_len));
EXPECT_EQ(8, used_len);
+ used_len = 0;
+ EXPECT_FLOAT_EQ(0.0f, FXSYS_wcstof(L"1.234E100000000000000", 21, &used_len));
+ EXPECT_EQ(0, used_len);
+
+ used_len = 0;
+ EXPECT_FLOAT_EQ(0.0f, FXSYS_wcstof(L"1.234E-128", 21, &used_len));
+ EXPECT_EQ(0, used_len);
+
// TODO(dsinclair): This should round as per IEEE 64-bit values.
// EXPECT_EQ(L"123456789.01234567", FXSYS_wcstof(L"123456789.012345678"));
used_len = 0;