summaryrefslogtreecommitdiff
path: root/oss-fuzz
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2022-08-12 16:30:23 +0200
committerMartijn van Beurden <mvanb1@gmail.com>2022-08-20 16:03:53 +0200
commitc65483e2c20d1e9503ed9cebbdb3280b0ce1c3aa (patch)
tree134a27fd986c25094a90dffdfa5cfcff55db7b3c /oss-fuzz
parentfbb6cb5c075d24ce35ccad6ca18f9cbbdb4e3d3f (diff)
downloadflac-c65483e2c20d1e9503ed9cebbdb3280b0ce1c3aa.tar.gz
Do not memset when allocation fails
Also remove some nearby unused code
Diffstat (limited to 'oss-fuzz')
-rw-r--r--oss-fuzz/fuzzer_encoder_v2.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/oss-fuzz/fuzzer_encoder_v2.cc b/oss-fuzz/fuzzer_encoder_v2.cc
index b00bc623..9300a1f0 100644
--- a/oss-fuzz/fuzzer_encoder_v2.cc
+++ b/oss-fuzz/fuzzer_encoder_v2.cc
@@ -166,7 +166,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
}
/* Disable alloc check if requested */
- if(data_bools[14])
+ if(encoder_valid && data_bools[14])
alloc_check_threshold = INT32_MAX;
/* data_bools[15] are spare */
@@ -286,7 +286,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
state == FLAC__STREAM_ENCODER_UNINITIALIZED ||
state == FLAC__STREAM_ENCODER_CLIENT_ERROR ||
((state == FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR ||
- state == FLAC__STREAM_ENCODER_FRAMING_ERROR) &&
+ state == FLAC__STREAM_ENCODER_FRAMING_ERROR ||
+ (state == FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR &&
+ FLAC__stream_encoder_get_verify_decoder_state(encoder) == FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR)) &&
alloc_check_threshold < INT32_MAX))) {
fprintf(stderr,"-----\nERROR: stream encoder returned %s\n-----\n",FLAC__stream_encoder_get_resolved_state_string(encoder));
if(state == FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA) {