mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-10 08:40:57 +00:00
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/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
66be242626
commit
3f5a68533d
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user