From 87c4586d61da2b11d3310f6ef7705886a7155edd Mon Sep 17 00:00:00 2001
From: Matt Johnston <matt@ucc.asn.au>
Date: Thu, 25 May 2017 22:20:10 +0800
Subject: [PATCH] fuzzing has a constant time

--HG--
branch : fuzz
---
 dbutil.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/dbutil.c b/dbutil.c
index d9bb2dde..64e87e82 100644
--- a/dbutil.c
+++ b/dbutil.c
@@ -625,7 +625,14 @@ static clockid_t get_linux_clock_source() {
 #endif 
 
 time_t monotonic_now() {
+#ifdef DROPBEAR_FUZZ
+	if (fuzz.fuzzing) {
+		/* time stands still when fuzzing */
+		return 5;
+	}
+#endif
 #if defined(__linux__) && defined(SYS_clock_gettime)
+	{
 	static clockid_t clock_source = -2;
 
 	if (clock_source == -2) {
@@ -642,9 +649,11 @@ time_t monotonic_now() {
 		}
 		return ts.tv_sec;
 	}
+	}
 #endif /* linux clock_gettime */
 
 #if defined(HAVE_MACH_ABSOLUTE_TIME)
+	{
 	/* OS X, see https://developer.apple.com/library/mac/qa/qa1398/_index.html */
 	static mach_timebase_info_data_t timebase_info;
 	if (timebase_info.denom == 0) {
@@ -652,6 +661,7 @@ time_t monotonic_now() {
 	}
 	return mach_absolute_time() * timebase_info.numer / timebase_info.denom
 		/ 1e9;
+	}
 #endif /* osx mach_absolute_time */
 
 	/* Fallback for everything else - this will sometimes go backwards */
-- 
GitLab