summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/bmp_parser.c12
1 files changed, 8 insertions, 4 deletions
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;
}
}