aboutsummaryrefslogtreecommitdiffstats
path: root/fuzz
diff options
context:
space:
mode:
authorKurt Roeckx <kurt@roeckx.be>2017-02-19 16:59:25 +0100
committerKurt Roeckx <kurt@roeckx.be>2017-04-16 19:30:15 +0200
commit14a6570f318562faf850f842ef3ce56f54ddc890 (patch)
tree4e2cd6f4071d81f16be79d8083f9a834273e18c9 /fuzz
parent930aa9eeedd57478418ee267bb91d15ac95b1a78 (diff)
downloadopenssl-14a6570f318562faf850f842ef3ce56f54ddc890.tar.gz
Use a fixed time when fuzzing.
Reviewed-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Andy Polyakov <appro@openssl.org> GH: #2683
Diffstat (limited to 'fuzz')
-rw-r--r--fuzz/client.c18
-rw-r--r--fuzz/server.c19
2 files changed, 36 insertions, 1 deletions
diff --git a/fuzz/client.c b/fuzz/client.c
index 9404a95a68..622d782b2c 100644
--- a/fuzz/client.c
+++ b/fuzz/client.c
@@ -8,6 +8,7 @@
* or in the file LICENSE in the source distribution.
*/
+#include <time.h>
#include <openssl/rand.h>
#include <openssl/ssl.h>
#include <openssl/rsa.h>
@@ -25,6 +26,23 @@ extern int rand_predictable;
/* unused, to avoid warning. */
static int idx;
+#define FUZZTIME 1485898104
+
+#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.
+ */
+#if defined(_WIN32) && defined(_TIME64_T_DEFINED)
+time64_t _time64(time64_t *t) TIME_IMPL(t)
+#endif
+#if !defined(_WIN32) || !defined(_MSC_VER)
+time_t time(time_t *t) TIME_IMPL(t)
+#endif
+
int FuzzerInitialize(int *argc, char ***argv)
{
STACK_OF(SSL_COMP) *comp_methods;
diff --git a/fuzz/server.c b/fuzz/server.c
index 5bbba1c26a..8c5e2d8d4a 100644
--- a/fuzz/server.c
+++ b/fuzz/server.c
@@ -12,7 +12,7 @@
/* Test first part of SSL server handshake. */
-
+#include <time.h>
#include <openssl/rand.h>
#include <openssl/ssl.h>
#include <openssl/rsa.h>
@@ -473,6 +473,23 @@ extern int rand_predictable;
/* unused, to avoid warning. */
static int idx;
+#define FUZZTIME 1485898104
+
+#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.
+ */
+#if defined(_WIN32) && defined(_TIME64_T_DEFINED)
+time64_t _time64(time64_t *t) TIME_IMPL(t)
+#endif
+#if !defined(_WIN32) || !defined(_MSC_VER)
+time_t time(time_t *t) TIME_IMPL(t)
+#endif
+
int FuzzerInitialize(int *argc, char ***argv)
{
STACK_OF(SSL_COMP) *comp_methods;