On FreeBSD/arm, any value > 50 bits will result in a rediculously huge
number being returned for mktime and timegm calls. Choose 48 because that works well. This does reduce the dynamic range of tm_year from about 2 billion years down to "only" about 9 million years. Please contact me if this restriction poses a problem. Due to the complexity of the code, I admit that I didn't trace down what, exactly, was overflowing with longer bits. This fixes software that we run on the embedded systems we have.
This commit is contained in:
parent
d92e35fd5f
commit
9685457382
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=166102
@ -1518,8 +1518,8 @@ const int do_norm_secs;
|
||||
** If we have more than this, we will overflow tm_year for tmcomp().
|
||||
** We should really return an error if we cannot represent it.
|
||||
*/
|
||||
if (bits > 56)
|
||||
bits = 56;
|
||||
if (bits > 48)
|
||||
bits = 48;
|
||||
/*
|
||||
** If time_t is signed, then 0 is just above the median,
|
||||
** assuming two's complement arithmetic.
|
||||
|
Loading…
Reference in New Issue
Block a user