mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-31 03:44:15 +00:00
avcodec/flac_parser: Fix infinite loop
Fixes: crbug/827204 Reported-by: Frank Liberato <liberato@google.com> Reviewed-by: Frank Liberato <liberato@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
0ef7a45197
commit
15a2e35e9e
@ -686,12 +686,17 @@ static int flac_parse(AVCodecParserContext *s, AVCodecContext *avctx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (curr = fpc->headers; curr; curr = curr->next) {
|
for (curr = fpc->headers; curr; curr = curr->next) {
|
||||||
if (curr->max_score > 0 &&
|
if (!fpc->best_header || curr->max_score > fpc->best_header->max_score) {
|
||||||
(!fpc->best_header || curr->max_score > fpc->best_header->max_score)) {
|
|
||||||
fpc->best_header = curr;
|
fpc->best_header = curr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fpc->best_header && fpc->best_header->max_score <= 0) {
|
||||||
|
// Only accept a bad header if there is no other option to continue
|
||||||
|
if (!buf_size || !buf || read_end != buf || fpc->nb_headers_buffered < FLAC_MIN_HEADERS)
|
||||||
|
fpc->best_header = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (fpc->best_header) {
|
if (fpc->best_header) {
|
||||||
fpc->best_header_valid = 1;
|
fpc->best_header_valid = 1;
|
||||||
if (fpc->best_header->offset > 0) {
|
if (fpc->best_header->offset > 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user