diff options
author | Martijn van Beurden <mvanb1@gmail.com> | 2022-05-10 21:25:54 +0200 |
---|---|---|
committer | Martijn van Beurden <mvanb1@gmail.com> | 2022-05-11 10:34:49 +0200 |
commit | becba351f00b2f09a39590264dfbb11b84c9fcba (patch) | |
tree | f99549c5c743b874f348fc50c3a952a3ef044ef6 /oss-fuzz/fuzzer_encoder_v2.cc | |
parent | 87a5f3e9528d67b53a5f5e791d1ddd71c60d4a08 (diff) | |
download | flac-becba351f00b2f09a39590264dfbb11b84c9fcba.tar.gz |
Make it possible for fuzzer to disable instruction set optimizations
This should greatly increase code coverage of the encoder fuzzer
Diffstat (limited to 'oss-fuzz/fuzzer_encoder_v2.cc')
-rw-r--r-- | oss-fuzz/fuzzer_encoder_v2.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/oss-fuzz/fuzzer_encoder_v2.cc b/oss-fuzz/fuzzer_encoder_v2.cc index 5557719e..85a8bf8e 100644 --- a/oss-fuzz/fuzzer_encoder_v2.cc +++ b/oss-fuzz/fuzzer_encoder_v2.cc @@ -58,7 +58,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) unsigned sample_rate, channels, bps; uint64_t samples_estimate; - unsigned compression_level, input_data_width, blocksize, max_lpc_order, qlp_coeff_precision, min_residual_partition_order, max_residual_partition_order, metadata_mask; + unsigned compression_level, input_data_width, blocksize, max_lpc_order, qlp_coeff_precision, min_residual_partition_order, max_residual_partition_order, metadata_mask, instruction_set_disable_mask; FLAC__bool ogg, interleaved; FLAC__bool data_bools[24]; @@ -90,9 +90,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) qlp_coeff_precision = data[14]; min_residual_partition_order = data[15] & 0b1111; max_residual_partition_order = data[15] & 0b11110000; - metadata_mask = (unsigned)data[16]; - - /* data[17] is spare */ + metadata_mask = data[16]; + instruction_set_disable_mask = data[17]; /* Get array of bools from configuration */ for(int i = 0; i < 16; i++) @@ -107,6 +106,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) encoder_valid &= FLAC__stream_encoder_set_bits_per_sample(encoder, bps); encoder_valid &= FLAC__stream_encoder_set_sample_rate(encoder, sample_rate); encoder_valid &= FLAC__stream_encoder_set_total_samples_estimate(encoder, samples_estimate); + encoder_valid &= FLAC__stream_encoder_disable_instruction_set(encoder, instruction_set_disable_mask); /* Set compression related parameters */ encoder_valid &= FLAC__stream_encoder_set_compression_level(encoder, compression_level); |