mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Windows: Fix CefCookieVisitor crash on invalid date (fixes issue #2927)
This commit is contained in:
@@ -20,6 +20,16 @@ void cef_time_to_basetime(const cef_time_t& cef_time, base::Time& time) {
|
||||
}
|
||||
|
||||
void cef_time_from_basetime(const base::Time& time, cef_time_t& cef_time) {
|
||||
#if defined(OS_WIN)
|
||||
int64_t t = time.ToDeltaSinceWindowsEpoch().InMicroseconds();
|
||||
// From MSDN, FILETIME "Contains a 64-bit value representing the number of
|
||||
// 100-nanosecond intervals since January 1, 1601 (UTC)." This value must
|
||||
// be less than 0x8000000000000000. Otherwise, the function
|
||||
// FileTimeToSystemTime fails.
|
||||
if (t < 0 || static_cast<uint64_t>(t * 10) >= 0x8000000000000000)
|
||||
return;
|
||||
#endif
|
||||
|
||||
base::Time::Exploded exploded;
|
||||
time.UTCExplode(&exploded);
|
||||
cef_time.year = exploded.year;
|
||||
|
Reference in New Issue
Block a user