Commit 3f5a6853 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/flacdec: Return error code instead of 0 for failures

Fixes: infinite loop
Fixes: 1418/clusterfuzz-testcase-minimized-5934472438480896

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpegSigned-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 66be2426
...@@ -205,12 +205,12 @@ static int get_metadata_size(const uint8_t *buf, int buf_size) ...@@ -205,12 +205,12 @@ static int get_metadata_size(const uint8_t *buf, int buf_size)
buf += 4; buf += 4;
do { do {
if (buf_end - buf < 4) if (buf_end - buf < 4)
return 0; return AVERROR_INVALIDDATA;
flac_parse_block_header(buf, &metadata_last, NULL, &metadata_size); flac_parse_block_header(buf, &metadata_last, NULL, &metadata_size);
buf += 4; buf += 4;
if (buf_end - buf < metadata_size) { if (buf_end - buf < metadata_size) {
/* need more data in order to read the complete header */ /* need more data in order to read the complete header */
return 0; return AVERROR_INVALIDDATA;
} }
buf += metadata_size; buf += metadata_size;
} while (!metadata_last); } while (!metadata_last);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment