-
Yuri Wiitala authored
Fixes issues with UTCExploded() on certain 32-bit systems, where Time's in the near and distant future would result in exploded calendar fields in "random years past." This change solves the Y2038 problem for those systems. Hardens the UTC/LocalExploded() API, to guarantee all platforms will explode from the years 1601 to 30828 (at least), and clarifies how callers should check for a valid conversion. For platforms whose standard libraries are insufficient, the icu::Calendar implementation is used to provide the needed functionality. Fixes/Simplification to ensure base::Time::ToRoundedDownMillis...() will never do math that overflows int64_t's. Minor other tweaks in touched files. Fixes to a couple of unit tests in net/der and net/cert/internal. Bug: 1104442 Change-Id: I5f0e45879b8ee18cc7c253fa4a204443fdc27ebf Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2317864 Commit-Queue: Yuri Wiitala <miu@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Matt Mueller <mattm@chromium.org> Reviewed-by:
Maksim Ivanov <emaxx@chromium.org> Reviewed-by:
Peter Kasting <pkasting@chromium.org> Cr-Commit-Position: refs/heads/master@{#802050}
70883d6e