From cd92d1fdd39819595e4b200bb82d8a0e9c76cfa5 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Sat, 15 Sep 2018 14:59:06 +0200 Subject: [PATCH] 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) --- crypto/rand/rand_vms.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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); } -- 2.25.1