Commit cd92d1fd authored by Richard Levitte's avatar Richard Levitte Committed by Richard Levitte
Browse files

VMS: only use the high precision on VMS v8.4 and up



It simply isn't available on older versions.

Issue submitted by Mark Daniels

Fixes #7229

Reviewed-by: default avatarTim Hudson <tjh@openssl.org>
Reviewed-by: default avatarMatthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/7230)

(cherry picked from commit d6d6aa35)
parent f09877c1
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -478,13 +478,18 @@ int rand_pool_add_nonce_data(RAND_POOL *pool)
    } data = { 0 };

    /*
     * Add process id, thread id, and a high resolution timestamp to
     * ensure that the nonce is unique whith high probability for
     * different process instances.
     * Add process id, thread id, and a high resolution timestamp
     * (where available, which is OpenVMS v8.4 and up) to ensure that
     * the nonce is unique whith high probability for different process
     * instances.
     */
    data.pid = getpid();
    data.tid = CRYPTO_THREAD_get_current_id();
#if __CRTL_VER >= 80400000
    sys$gettim_prec(&data.time);
#else
    sys$gettim((void*)&data.time);
#endif

    return rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);
}