summaryrefslogtreecommitdiff
path: root/oss-fuzz
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2022-05-10 19:59:53 +0200
committerMartijn van Beurden <mvanb1@gmail.com>2022-05-11 10:34:49 +0200
commit87a5f3e9528d67b53a5f5e791d1ddd71c60d4a08 (patch)
treec1df10f93e36ca46b083c5bb754f0299bece62c2 /oss-fuzz
parent6122337f73b3a9be5d592e668c6e046fae7a8de4 (diff)
downloadflac-87a5f3e9528d67b53a5f5e791d1ddd71c60d4a08.tar.gz
Add abort on encoding error that should not happen
This commit lets the following errors trigger an abort: - FLAC__STREAM_ENCODER_OGG_ERROR - FLAC__STREAM_ENCODER_VERIFY_DECODER_ERROR - FLAC__STREAM_ENCODER_VERIFY_MISMATCH_IN_AUDIO_DATA - FLAC__STREAM_ENCODER_IO_ERROR - FLAC__STREAM_ENCODER_FRAMING_ERROR - FLAC__STREAM_ENCODER_MEMORY_ALLOCATION_ERROR FLAC__STREAM_ENCODER_CLIENT_ERROR does not trigger an abort because it is used to signal invalid input. FLAC__STREAM_ENCODER_UNINITIALIZED does not trigger an abort because init fails when invalid parameters are given
Diffstat (limited to 'oss-fuzz')
-rw-r--r--oss-fuzz/fuzzer_encoder_v2.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/oss-fuzz/fuzzer_encoder_v2.cc b/oss-fuzz/fuzzer_encoder_v2.cc
index b6216a9d..5557719e 100644
--- a/oss-fuzz/fuzzer_encoder_v2.cc
+++ b/oss-fuzz/fuzzer_encoder_v2.cc
@@ -238,6 +238,13 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
}
}
+ if(FLAC__stream_encoder_get_state(encoder) != FLAC__STREAM_ENCODER_OK &&
+ FLAC__stream_encoder_get_state(encoder) != FLAC__STREAM_ENCODER_UNINITIALIZED &&
+ FLAC__stream_encoder_get_state(encoder) != FLAC__STREAM_ENCODER_CLIENT_ERROR){
+ fprintf(stderr,"-----\nERROR: stream encoder returned %s\n-----\n",FLAC__stream_encoder_get_resolved_state_string(encoder));
+ abort();
+ }
+
FLAC__stream_encoder_finish(encoder);
/* now that encoding is finished, the metadata can be freed */