diff options
author | Dr. Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> | 2018-01-30 23:53:57 +0100 |
---|---|---|
committer | Dr. Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> | 2018-01-31 17:16:40 +0100 |
commit | 2e230e8687486b71c113915b864d6b1f6d465ed1 (patch) | |
tree | 69f8f57cec2f3cffe954313c3bc982165151d58c /crypto/rand/rand_lib.c | |
parent | 85d6ad34aa0158fb25538e116e611e6b858d3638 (diff) | |
download | openssl-2e230e8687486b71c113915b864d6b1f6d465ed1.zip openssl-2e230e8687486b71c113915b864d6b1f6d465ed1.tar.gz openssl-2e230e8687486b71c113915b864d6b1f6d465ed1.tar.bz2 |
crypto/rand/rand_lib.c: fix undefined reference to `clock_gettime'
Some older glibc versions require the `-lrt` linker option for
resolving the reference to `clock_gettime'. Since it is not desired
to add new library dependencies in version 1.1.1, the call to
clock_gettime() is replaced by a call to gettimeofday() for the
moment. It will be added back in version 1.2.
Signed-off-by: Dr. Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/5199)
Diffstat (limited to 'crypto/rand/rand_lib.c')
-rw-r--r-- | crypto/rand/rand_lib.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/crypto/rand/rand_lib.c b/crypto/rand/rand_lib.c index 3824d93..ab03356 100644 --- a/crypto/rand/rand_lib.c +++ b/crypto/rand/rand_lib.c @@ -210,13 +210,15 @@ size_t rand_drbg_get_additional_data(unsigned char **pout, size_t max_len) size_t len; #ifdef OPENSSL_SYS_UNIX pid_t pid; - struct timespec ts; + struct timeval tv; #elif defined(OPENSSL_SYS_WIN32) DWORD pid; FILETIME ft; LARGE_INTEGER pc; #endif +#ifdef OPENSSL_CPUID_OBJ uint32_t tsc = 0; +#endif pool = RAND_POOL_new(0, 0, max_len); if (pool == NULL) @@ -241,12 +243,10 @@ size_t rand_drbg_get_additional_data(unsigned char **pout, size_t max_len) #endif #ifdef OPENSSL_SYS_UNIX - if (tsc == 0 && clock_gettime(CLOCK_MONOTONIC, &ts) == 0) - RAND_POOL_add(pool, (unsigned char *)&ts, sizeof(ts), 0); - if (clock_gettime(CLOCK_REALTIME, &ts) == 0) - RAND_POOL_add(pool, (unsigned char *)&ts, sizeof(ts), 0); + if (gettimeofday(&tv, NULL) == 0) + RAND_POOL_add(pool, (unsigned char *)&tv, sizeof(tv), 0); #elif defined(OPENSSL_SYS_WIN32) - if (tsc == 0 && QueryPerformanceCounter(&pc) != 0) + if (QueryPerformanceCounter(&pc) != 0) RAND_POOL_add(pool, (unsigned char *)&pc, sizeof(pc), 0); GetSystemTimeAsFileTime(&ft); RAND_POOL_add(pool, (unsigned char *)&ft, sizeof(ft), 0); |