mirror of
https://github.com/SoftEtherVPN/SoftEtherVPN.git
synced 2024-11-26 19:39:53 +03:00
src/Mayaqua/Kernel.c: Fix for times before 1970
Before, it would end up far in the future. Now it gets clamped to 1970. This should be fine since dates before 1970 are not actively used. If they are, then the UINT64 should be replaced by the time64t in quite a few places.
This commit is contained in:
parent
3d0e87cf57
commit
41f9cdadc4
@ -2137,6 +2137,15 @@ UINT64 SystemToUINT64(SYSTEMTIME *st)
|
|||||||
}
|
}
|
||||||
|
|
||||||
time = SystemToTime(st);
|
time = SystemToTime(st);
|
||||||
|
|
||||||
|
//For times before 1970-01-01, clamp to the minimum
|
||||||
|
//because we have to return an unsigned integer.
|
||||||
|
//This is less wrong than casting it to UINT64
|
||||||
|
//and returning a time far in the future.
|
||||||
|
//For some reason we subtract 9 hours below, so
|
||||||
|
//account for that here.
|
||||||
|
if( time < 32400000LL ) return 0;
|
||||||
|
|
||||||
sec64 = (UINT64)time * (UINT64)1000;
|
sec64 = (UINT64)time * (UINT64)1000;
|
||||||
sec64 += st->wMilliseconds;
|
sec64 += st->wMilliseconds;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user