|
@@ -1992,18 +1992,18 @@ static int matroska_parse_laces(MatroskaDemuxContext *matroska, uint8_t **buf, |
|
|
uint32_t total = 0; |
|
|
uint32_t total = 0; |
|
|
for (n = 0; res == 0 && n < *laces - 1; n++) { |
|
|
for (n = 0; res == 0 && n < *laces - 1; n++) { |
|
|
while (1) { |
|
|
while (1) { |
|
|
if (size == 0) { |
|
|
|
|
|
|
|
|
if (size <= total) { |
|
|
res = AVERROR_INVALIDDATA; |
|
|
res = AVERROR_INVALIDDATA; |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
temp = *data; |
|
|
temp = *data; |
|
|
|
|
|
total += temp; |
|
|
lace_size[n] += temp; |
|
|
lace_size[n] += temp; |
|
|
data += 1; |
|
|
data += 1; |
|
|
size -= 1; |
|
|
size -= 1; |
|
|
if (temp != 0xff) |
|
|
if (temp != 0xff) |
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
|
total += lace_size[n]; |
|
|
|
|
|
} |
|
|
} |
|
|
if (size <= total) { |
|
|
if (size <= total) { |
|
|
res = AVERROR_INVALIDDATA; |
|
|
res = AVERROR_INVALIDDATA; |
|
|