From 710769f0a9ed6b758bbf7ffa217c21b47f31a8a6 Mon Sep 17 00:00:00 2001 From: Rich Salz Date: Fri, 11 Aug 2017 08:22:22 -0400 Subject: [PATCH] Move FuzzerSetRand to separate file. Use an inline rand.inc; this fixes Google's OSS-Fuzz builds. Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/4141) --- fuzz/asn1.c | 2 ++ fuzz/client.c | 2 ++ fuzz/rand.inc | 40 ++++++++++++++++++++++++++++++++++++++++ fuzz/server.c | 2 ++ fuzz/test-corpus.c | 31 ------------------------------- fuzz/x509.c | 2 ++ 6 files changed, 48 insertions(+), 31 deletions(-) create mode 100644 fuzz/rand.inc diff --git a/fuzz/asn1.c b/fuzz/asn1.c index 90262defd3..d574289e69 100644 --- a/fuzz/asn1.c +++ b/fuzz/asn1.c @@ -31,6 +31,8 @@ #include #include "fuzzer.h" +#include "rand.inc" + static ASN1_ITEM_EXP *item_type[] = { ASN1_ITEM_ref(ACCESS_DESCRIPTION), #ifndef OPENSSL_NO_RFC3779 diff --git a/fuzz/client.c b/fuzz/client.c index 3bc4ad94f1..1f4a41123b 100644 --- a/fuzz/client.c +++ b/fuzz/client.c @@ -18,6 +18,8 @@ #include #include "fuzzer.h" +#include "rand.inc" + /* unused, to avoid warning. */ static int idx; diff --git a/fuzz/rand.inc b/fuzz/rand.inc new file mode 100644 index 0000000000..f8b3277b94 --- /dev/null +++ b/fuzz/rand.inc @@ -0,0 +1,40 @@ +/* + * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. + * + * Licensed under the OpenSSL licenses, (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * https://www.openssl.org/source/license.html + * or in the file LICENSE in the source distribution. + */ +#include + +static int fuzz_bytes(unsigned char *buf, int num) +{ + unsigned char val = 1; + + while (--num >= 0) + *buf++ = val++; + return 1; +} + +static int fuzz_status(void) +{ + return 1; +} + +static RAND_METHOD fuzz_rand_method = { + NULL, + fuzz_bytes, + NULL, + NULL, + fuzz_bytes, + fuzz_status +}; + +void FuzzerSetRand(void) +{ + RAND_set_rand_method(&fuzz_rand_method); +} + + diff --git a/fuzz/server.c b/fuzz/server.c index 6cc1f7f3da..e51ce10969 100644 --- a/fuzz/server.c +++ b/fuzz/server.c @@ -22,6 +22,8 @@ #include #include "fuzzer.h" +#include "rand.inc" + static const uint8_t kCertificateDER[] = { 0x30, 0x82, 0x02, 0xff, 0x30, 0x82, 0x01, 0xe7, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x11, 0x00, 0xb1, 0x84, 0xee, 0x34, 0x99, 0x98, 0x76, 0xfb, diff --git a/fuzz/test-corpus.c b/fuzz/test-corpus.c index a876f209c9..9cef01f86d 100644 --- a/fuzz/test-corpus.c +++ b/fuzz/test-corpus.c @@ -18,39 +18,8 @@ #include #include #include -#include #include "fuzzer.h" -static int fuzz_bytes(unsigned char *buf, int num) -{ - unsigned char val = 1; - - while (--num >= 0) - *buf++ = val++; - return 1; -} - -static int fuzz_status(void) -{ - return 1; -} - -static RAND_METHOD fuzz_rand_method = { - NULL, - fuzz_bytes, - NULL, - NULL, - fuzz_bytes, - fuzz_status -}; - -void FuzzerSetRand(void) -{ - RAND_set_rand_method(&fuzz_rand_method); -} - - - int main(int argc, char **argv) { int n; diff --git a/fuzz/x509.c b/fuzz/x509.c index 0de61cd969..926287da48 100644 --- a/fuzz/x509.c +++ b/fuzz/x509.c @@ -14,6 +14,8 @@ #include #include "fuzzer.h" +#include "rand.inc" + int FuzzerInitialize(int *argc, char ***argv) { OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL); -- 2.25.1