It's time for all of rng seed code to go. Goodbye

dev
Dario Pavlovic 2019-09-12 13:10:34 -07:00
parent 92c58c4d5d
commit cd8588077e
3 changed files with 0 additions and 43 deletions

View File

@ -17,12 +17,6 @@
* test code paths which are only executed when contexts are reused. * test code paths which are only executed when contexts are reused.
* WARNING: Makes reproducing crashes much harder. * WARNING: Makes reproducing crashes much harder.
* Default: Not defined. * Default: Not defined.
* @param FUZZ_RNG_SEED_SIZE:
* The number of bytes of the source to look at when constructing a seed
* for the deterministic RNG. These bytes are discarded before passing
* the data to zstd functions. Every fuzzer initializes the RNG exactly
* once before doing anything else, even if it is unused.
* Default: 4.
* @param DEBUGLEVEL: * @param DEBUGLEVEL:
* This is a parameter for the zstd library. Defining `DEBUGLEVEL=1` * This is a parameter for the zstd library. Defining `DEBUGLEVEL=1`
* enables assert() statements in the zstd library. Higher levels enable * enables assert() statements in the zstd library. Higher levels enable
@ -42,10 +36,6 @@
#ifndef FUZZ_H #ifndef FUZZ_H
#define FUZZ_H #define FUZZ_H
#ifndef FUZZ_RNG_SEED_SIZE
# define FUZZ_RNG_SEED_SIZE 4
#endif
#include <stddef.h> #include <stddef.h>
#include <stdint.h> #include <stdint.h>

View File

@ -740,10 +740,8 @@ def gen(args):
for name in os.listdir(samples): for name in os.listdir(samples):
samplename = abs_join(samples, name) samplename = abs_join(samples, name)
outname = abs_join(seed, name) outname = abs_join(seed, name)
rng_seed = os.urandom(args.fuzz_rng_seed_size)
with open(samplename, 'rb') as sample: with open(samplename, 'rb') as sample:
with open(outname, 'wb') as out: with open(outname, 'wb') as out:
out.write(rng_seed)
CHUNK_SIZE = 131072 CHUNK_SIZE = 131072
chunk = sample.read(CHUNK_SIZE) chunk = sample.read(CHUNK_SIZE)
while len(chunk) > 0: while len(chunk) > 0:

View File

@ -55,37 +55,6 @@ extern "C" {
#define FUZZ_STATIC static #define FUZZ_STATIC static
#endif #endif
/**
* Deterministically constructs a seed based on the fuzz input.
* Consumes up to the first FUZZ_RNG_SEED_SIZE bytes of the input.
*/
FUZZ_STATIC uint32_t FUZZ_seed(uint8_t const **src, size_t* size) {
uint8_t const *data = *src;
size_t const toHash = MIN(FUZZ_RNG_SEED_SIZE, *size);
*size -= toHash;
*src += toHash;
return XXH32(data, toHash, 0);
}
#define FUZZ_rotl32(x, r) (((x) << (r)) | ((x) >> (32 - (r))))
FUZZ_STATIC uint32_t FUZZ_rand(uint32_t *state) {
static const uint32_t prime1 = 2654435761U;
static const uint32_t prime2 = 2246822519U;
uint32_t rand32 = *state;
rand32 *= prime1;
rand32 += prime2;
rand32 = FUZZ_rotl32(rand32, 13);
*state = rand32;
return rand32 >> 5;
}
/* Returns a random numer in the range [min, max]. */
FUZZ_STATIC uint32_t FUZZ_rand32(uint32_t *state, uint32_t min, uint32_t max) {
uint32_t random = FUZZ_rand(state);
return min + (random % (max - min + 1));
}
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif