aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2024-03-06 13:49:30 +0100
committerMartijn van Beurden <mvanb1@gmail.com>2024-03-07 21:02:05 +0100
commit79a164ecdf18d3addab53fa660addb47aff982b9 (patch)
tree169a89e3957d1f62535e19f978b3bf495b994cd5
parent37ca81137af2273686fc6d7d87827bdabd6bf234 (diff)
downloadflac-79a164ecdf18d3addab53fa660addb47aff982b9.tar.gz
Augment fuzzing to catch https://github.com/xiph/flac/pull/645
-rw-r--r--oss-fuzz/encoder_v2.cc2
-rw-r--r--src/libFLAC/stream_decoder.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/oss-fuzz/encoder_v2.cc b/oss-fuzz/encoder_v2.cc
index 20e81ebd..3eb00f2e 100644
--- a/oss-fuzz/encoder_v2.cc
+++ b/oss-fuzz/encoder_v2.cc
@@ -54,6 +54,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
FLAC__bool encoder_valid = true;
FLAC__StreamEncoder *encoder = 0;
FLAC__StreamEncoderState state;
+ const char* state_string = "";
FLAC__StreamMetadata *metadata[16] = {NULL};
unsigned num_metadata = 0;
FLAC__StreamMetadata_VorbisComment_Entry VorbisCommentField;
@@ -320,6 +321,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
}
state = FLAC__stream_encoder_get_state(encoder);
+ state_string = FLAC__stream_encoder_get_resolved_state_string(encoder);
if(!(state == FLAC__STREAM_ENCODER_OK ||
state == FLAC__STREAM_ENCODER_UNINITIALIZED ||
state == FLAC__STREAM_ENCODER_CLIENT_ERROR ||
diff --git a/src/libFLAC/stream_decoder.c b/src/libFLAC/stream_decoder.c
index 1d08a052..00bc5251 100644
--- a/src/libFLAC/stream_decoder.c
+++ b/src/libFLAC/stream_decoder.c
@@ -247,18 +247,18 @@ FLAC_API FLAC__StreamDecoder *FLAC__stream_decoder_new(void)
FLAC__ASSERT(sizeof(int) >= 4); /* we want to die right away if this is not true */
- decoder = calloc(1, sizeof(FLAC__StreamDecoder));
+ decoder = safe_calloc_(1, sizeof(FLAC__StreamDecoder));
if(decoder == 0) {
return 0;
}
- decoder->protected_ = calloc(1, sizeof(FLAC__StreamDecoderProtected));
+ decoder->protected_ = safe_calloc_(1, sizeof(FLAC__StreamDecoderProtected));
if(decoder->protected_ == 0) {
free(decoder);
return 0;
}
- decoder->private_ = calloc(1, sizeof(FLAC__StreamDecoderPrivate));
+ decoder->private_ = safe_calloc_(1, sizeof(FLAC__StreamDecoderPrivate));
if(decoder->private_ == 0) {
free(decoder->protected_);
free(decoder);