summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-01-03 14:01:10 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-01-05 09:47:59 +0000
commitf2ffe010d92607c5eebbabf306d57e4eedb05750 (patch)
tree636ade6d92b3dda7a50451657f7b21d3146a73dc
parentccdc643a9e8a34119fac41129f2998b44e7c03ec (diff)
downloadqtwebengine-chromium-f2ffe010d92607c5eebbabf306d57e4eedb05750.tar.gz
[Backport] Fix a range bug in Persian calendar
Bug: 774382 Test: See the bug (CVE-2017-774382) Change-Id: I587754fe6664c5486fa4569d6299579c71abe523 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
-rw-r--r--chromium/third_party/icu/README.chromium6
-rw-r--r--chromium/third_party/icu/source/i18n/persncal.cpp2
2 files changed, 7 insertions, 1 deletions
diff --git a/chromium/third_party/icu/README.chromium b/chromium/third_party/icu/README.chromium
index 9d47b95b6fb..975868d39ea 100644
--- a/chromium/third_party/icu/README.chromium
+++ b/chromium/third_party/icu/README.chromium
@@ -307,3 +307,9 @@ D. Local Modifications
http://crbug.com/770452
- patches/loc_keyvaleu.patch
+
+13. Persian calendar range fix.
+
+ http://crbug.com/774382
+
+ - patches/persian_cal.patch (fixed in ICU 60.1)
diff --git a/chromium/third_party/icu/source/i18n/persncal.cpp b/chromium/third_party/icu/source/i18n/persncal.cpp
index f66ac676a4a..f38f779fea9 100644
--- a/chromium/third_party/icu/source/i18n/persncal.cpp
+++ b/chromium/third_party/icu/source/i18n/persncal.cpp
@@ -213,7 +213,7 @@ void PersianCalendar::handleComputeFields(int32_t julianDay, UErrorCode &/*statu
int32_t year, month, dayOfMonth, dayOfYear;
int32_t daysSinceEpoch = julianDay - PERSIAN_EPOCH;
- year = 1 + ClockMath::floorDivide(33 * daysSinceEpoch + 3, 12053);
+ year = 1 + (int32_t)ClockMath::floorDivide(33 * (int64_t)daysSinceEpoch + 3, (int64_t)12053);
int32_t farvardin1 = 365 * (year - 1) + ClockMath::floorDivide(8 * year + 21, 33);
dayOfYear = (daysSinceEpoch - farvardin1); // 0-based