From: Richard Levitte Date: Sat, 15 Sep 2018 12:59:06 +0000 (+0200) Subject: VMS: only use the high precision on VMS v8.4 and up X-Git-Tag: openssl-3.0.0-alpha1~3116 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=cd92d1fdd39819595e4b200bb82d8a0e9c76cfa5;p=oweals%2Fopenssl.git 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: Tim Hudson Reviewed-by: Matthias St. Pierre (Merged from https://github.com/openssl/openssl/pull/7230) (cherry picked from commit d6d6aa3521e207c2727bbd1e5c97772502d15739) --- diff --git a/crypto/rand/rand_vms.c b/crypto/rand/rand_vms.c index 43dddf3c93..bfcf6f0a86 100644 --- a/crypto/rand/rand_vms.c +++ b/crypto/rand/rand_vms.c @@ -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); }