summaryrefslogtreecommitdiff
path: root/libavcodec/iff.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/iff.c')
-rw-r--r--libavcodec/iff.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libavcodec/iff.c b/libavcodec/iff.c
index 5b819c8daa..dc3cb4b80f 100644
--- a/libavcodec/iff.c
+++ b/libavcodec/iff.c
@@ -1247,7 +1247,7 @@ static void decode_delta_d(uint8_t *dst,
bytestream2_init(&gb, buf + ofssrc, buf_end - (buf + ofssrc));
entries = bytestream2_get_be32(&gb);
- while (entries) {
+ while (entries && bytestream2_get_bytes_left(&gb) >= 8) {
int32_t opcode = bytestream2_get_be32(&gb);
unsigned offset = bytestream2_get_be32(&gb);
@@ -1302,7 +1302,7 @@ static void decode_delta_e(uint8_t *dst,
bytestream2_init(&gb, buf + ofssrc, buf_end - (buf + ofssrc));
entries = bytestream2_get_be16(&gb);
- while (entries) {
+ while (entries && bytestream2_get_bytes_left(&gb) >= 6) {
int16_t opcode = bytestream2_get_be16(&gb);
unsigned offset = bytestream2_get_be32(&gb);