[openssl-users] NMAKE fatal error, 32-bit time_t
levitte at openssl.org
Wed Sep 12 15:33:19 UTC 2018
In message <c10a4aa5-70ca-b3b0-ba48-bdf5fb17224e at openssl.org> on Wed, 12 Sep 2018 16:24:03 +0100, Matt Caswell <matt at openssl.org> said:
> On 12/09/18 16:23, Thomas J. Hruska wrote:
> > On 9/12/2018 7:03 AM, Viktor Dukhovni wrote:
> >>> On Sep 12, 2018, at 9:53 AM, Thomas J. Hruska
> >>> <shinelight at shininglightpro.com> wrote:
> >>> Casting to time_t appears to correct the issue and the build
> >>> completes successfully:
> >>> const time_t default_time =
> >>> (time_t)CT_POLICY_EVAL_CTX_get_time(ct_policy_ctx) /
> >>> 1000;
> >> Since the CT time value is in "ms" since epoch, you really don't want
> >> to down-convert that to 32 bit *before* the division. You'll need
> >> some parentheses:
> >> https://en.cppreference.com/w/c/language/operator_precedence
> >> type cast has higher precedence than division, but you need to
> >> divide first, then cast.
> > Whoops. Well, being pointed at the "intro to C" documentation is what I
> > get for rushing that. It's a bit ironic since I'm notorious for
> > wrapping everything in extra parenthesis just to avoid memorizing
> > operator precedence.
> > Thanks for pointing that out though.
> Is this new to 1.1.1? Or does it also impact 1.1.0?
The same problematic code line exists in 1.1.0 (line 545). I cannot
say why we haven't been hit by this before...
Richard Levitte levitte at openssl.org
OpenSSL Project http://www.openssl.org/~levitte/
More information about the openssl-users