From b12ae4a912a19cbab8d993e61114e65fce0d1834 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Wed, 26 Apr 2017 15:52:57 +0200 Subject: [PATCH] fuzz/{client,server}.c: omit _time64 "overload method". Approach was opportunistic in Windows context from its inception and on top of that it was proven to be error-prone at link stage. Correct answer is to introduce library-specific time function that we can control in platform-neutral manner. Meanwhile we just let be attempts to override time on Windows. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/3320) --- fuzz/client.c | 14 ++++++-------- fuzz/server.c | 14 ++++++-------- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/fuzz/client.c b/fuzz/client.c index 92ec6c004d..104938f42d 100644 --- a/fuzz/client.c +++ b/fuzz/client.c @@ -31,15 +31,13 @@ static int idx; #define TIME_IMPL(t) { if (t != NULL) *t = FUZZTIME; return FUZZTIME; } /* - * This might not in all cases and still get the current time - * instead of the fixed time. This will just result in things - * not being fully reproducible and have a slightly different - * coverage. + * This might not work in all cases (and definitely not on Windows + * because of the way linkers are) and callees can still get the + * current time instead of the fixed time. This will just result + * in things not being fully reproducible and have a slightly + * different coverage. */ -#if defined(_WIN32) && defined(_TIME64_T_DEFINED) -__time64_t _time64(__time64_t *t) TIME_IMPL(t) -#endif -#if !defined(_WIN32) || !defined(_MSC_VER) +#if !defined(_WIN32) time_t time(time_t *t) TIME_IMPL(t) #endif diff --git a/fuzz/server.c b/fuzz/server.c index 93cdc68d3f..397867f065 100644 --- a/fuzz/server.c +++ b/fuzz/server.c @@ -478,15 +478,13 @@ static int idx; #define TIME_IMPL(t) { if (t != NULL) *t = FUZZTIME; return FUZZTIME; } /* - * This might not in all cases and still get the current time - * instead of the fixed time. This will just result in things - * not being fully reproducible and have a slightly different - * coverage. + * This might not work in all cases (and definitely not on Windows + * because of the way linkers are) and callees can still get the + * current time instead of the fixed time. This will just result + * in things not being fully reproducible and have a slightly + * different coverage. */ -#if defined(_WIN32) && defined(_TIME64_T_DEFINED) -__time64_t _time64(__time64_t *t) TIME_IMPL(t) -#endif -#if !defined(_WIN32) || !defined(_MSC_VER) +#if !defined(_WIN32) time_t time(time_t *t) TIME_IMPL(t) #endif -- 2.25.1