diff options
author | Martijn van Beurden <mvanb1@gmail.com> | 2022-05-10 19:59:53 +0200 |
---|---|---|
committer | Martijn van Beurden <mvanb1@gmail.com> | 2022-05-11 10:34:49 +0200 |
commit | 87a5f3e9528d67b53a5f5e791d1ddd71c60d4a08 (patch) | |
tree | c1df10f93e36ca46b083c5bb754f0299bece62c2 /oss-fuzz | |
parent | 6122337f73b3a9be5d592e668c6e046fae7a8de4 (diff) | |
download | flac-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.cc | 7 |
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 */ |