Do not include time.h without MBEDTLS_HAVE_TIME
MBEDTLS_HAVE_TIME is documented as: "System has time.h and time()."
If that is not defined, do not attempt to include time.h.
A particular problem is platform-time.h, which should only be included if
MBEDTLS_HAVE_TIME is defined, which makes everything messier. Maybe it
should be refactored to have the check inside the header.
Signed-off-by: Daniel Axtens <dja@axtens.net>
diff --git a/programs/fuzz/common.c b/programs/fuzz/common.c
index e12ee3b..15ddf07 100644
--- a/programs/fuzz/common.c
+++ b/programs/fuzz/common.c
@@ -5,15 +5,17 @@
#include <stdlib.h>
#include "mbedtls/ctr_drbg.h"
+#if defined(MBEDTLS_HAVE_TIME)
mbedtls_time_t dummy_constant_time( mbedtls_time_t* time )
{
(void) time;
return 0x5af2a056;
}
+#endif
void dummy_init()
{
-#if defined(MBEDTLS_PLATFORM_TIME_ALT)
+#if (defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_PLATFORM_TIME_ALT))
mbedtls_platform_set_time( dummy_constant_time );
#else
fprintf(stderr, "Warning: fuzzing without constant time\n");
diff --git a/programs/fuzz/common.h b/programs/fuzz/common.h
index 5586c06..7757ee3 100644
--- a/programs/fuzz/common.h
+++ b/programs/fuzz/common.h
@@ -1,4 +1,13 @@
+#if !defined(MBEDTLS_CONFIG_FILE)
+#include "mbedtls/config.h"
+#else
+#include MBEDTLS_CONFIG_FILE
+#endif
+
+#if defined(MBEDTLS_HAVE_TIME)
#include "mbedtls/platform_time.h"
+#endif
+#include <stddef.h>
#include <stdint.h>
typedef struct fuzzBufferOffset
@@ -8,7 +17,9 @@
size_t Offset;
} fuzzBufferOffset_t;
+#if defined(MBEDTLS_HAVE_TIME)
mbedtls_time_t dummy_constant_time( mbedtls_time_t* time );
+#endif
void dummy_init();
int dummy_send( void *ctx, const unsigned char *buf, size_t len );