summaryrefslogtreecommitdiff
path: root/oss-fuzz/fuzzer_encoder_v2.cc
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2022-05-10 21:25:54 +0200
committerMartijn van Beurden <mvanb1@gmail.com>2022-05-11 10:34:49 +0200
commitbecba351f00b2f09a39590264dfbb11b84c9fcba (patch)
treef99549c5c743b874f348fc50c3a952a3ef044ef6 /oss-fuzz/fuzzer_encoder_v2.cc
parent87a5f3e9528d67b53a5f5e791d1ddd71c60d4a08 (diff)
downloadflac-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.cc8
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);