From ceb2fe027fec2bf8f1847d8a9676630583031e65 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 13 Sep 2014 17:46:18 +0200 Subject: avcodec/bmp_parser: delay frame end detection to the next header or EOF Fixes Ticket3687 Signed-off-by: Michael Niedermayer --- libavcodec/bmp_parser.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'libavcodec/bmp_parser.c') diff --git a/libavcodec/bmp_parser.c b/libavcodec/bmp_parser.c index b5845ed867..c9493dc32d 100644 --- a/libavcodec/bmp_parser.c +++ b/libavcodec/bmp_parser.c @@ -62,11 +62,13 @@ restart: bpc->pc.frame_start_found = 0; continue; } - if (bpc->fsize <= ihsize + 14) - bpc->fsize = INT_MAX/2; bpc->pc.frame_start_found++; bpc->remaining_size = bpc->fsize + i - 17; - goto restart; + + if (bpc->pc.index + i > 17) { + next = i - 17; + } else + goto restart; } else if (bpc->pc.frame_start_found) bpc->pc.frame_start_found++; } @@ -77,7 +79,9 @@ restart: bpc->remaining_size -= i; if (bpc->remaining_size) goto flush; - next = i; + + bpc->pc.frame_start_found = 0; + goto restart; } } -- cgit v1.2.3