Merge pull request #68 from binarymaster/master

Allow to set seed up to 0x7FFFFFFF
This commit is contained in:
wiire-a 2017-11-22 19:50:28 +01:00 committed by GitHub
commit fd6f4a28e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -170,7 +170,6 @@ time_t c_timegm(register struct tm *t) {
unsigned int get_unix_datetime(char *s, time_t *datetime) { unsigned int get_unix_datetime(char *s, time_t *datetime) {
unsigned int len = strlen(s); unsigned int len = strlen(s);
int month = 0, year; int month = 0, year;
struct tm t;
if (len == 4) { if (len == 4) {
if (get_int(s, &year)) if (get_int(s, &year))
@ -198,12 +197,17 @@ unsigned int get_unix_datetime(char *s, time_t *datetime) {
if (get_int(s_month, &month) || get_int(s_year, &year)) if (get_int(s_month, &month) || get_int(s_year, &year))
return 1; return 1;
if (year < 1970 || year > 2038 || month < 1 || month > 12) if (year < 1970 || year > 2038 || month < 1 || month > 12 || (month > 2 && year == 2038))
return 1; return 1;
} else { } else {
return 1; return 1;
} }
if (year == 2038 && month == 2) {
*datetime = (time_t) 0x7fffffff;
}
else {
struct tm t;
t.tm_sec = 0; t.tm_sec = 0;
t.tm_min = 0; t.tm_min = 0;
t.tm_hour = 0; t.tm_hour = 0;
@ -213,8 +217,9 @@ unsigned int get_unix_datetime(char *s, time_t *datetime) {
t.tm_isdst = 0; t.tm_isdst = 0;
*datetime = c_timegm(&t); *datetime = c_timegm(&t);
if (*datetime < 0) if (*datetime < 0) /* When time_t is 64 bits this check is pointless */
return 1; return 1;
}
return 0; return 0;
} }