mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-24 03:39:45 +00:00
avcodec/truemotion2: Move skip computation after checks
Fixes: runtime error: signed integer overflow: 630067357 * 4 cannot be represented in type 'int' Fixes: 2233/clusterfuzz-testcase-minimized-5943031318446080 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
e3fadc57c5
commit
3c716682a8
@ -298,15 +298,15 @@ static int tm2_read_stream(TM2Context *ctx, const uint8_t *buf, int stream_id, i
|
||||
/* get stream length in dwords */
|
||||
bytestream2_init(&gb, buf, buf_size);
|
||||
len = bytestream2_get_be32(&gb);
|
||||
skip = len * 4 + 4;
|
||||
|
||||
if (len == 0)
|
||||
return 4;
|
||||
|
||||
if (len >= INT_MAX / 4 - 1 || len < 0 || skip > buf_size) {
|
||||
if (len >= INT_MAX / 4 - 1 || len < 0 || len * 4 + 4 > buf_size) {
|
||||
av_log(ctx->avctx, AV_LOG_ERROR, "Error, invalid stream size.\n");
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
skip = len * 4 + 4;
|
||||
|
||||
toks = bytestream2_get_be32(&gb);
|
||||
if (toks & 1) {
|
||||
|
Loading…
Reference in New Issue
Block a user