mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/scpr: improve motion vectors checking for out of buffer write
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
c87ea47481
commit
0a28c50506
|
@ -509,8 +509,8 @@ static int decompress_p(AVCodecContext *avctx,
|
||||||
by + mvy + sy1 >= avctx->height || bx + mvx + sx1 >= avctx->width)
|
by + mvy + sy1 >= avctx->height || bx + mvx + sx1 >= avctx->width)
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
|
||||||
for (i = 0; i < sy2 - sy1 && (by + sy1 + i) < avctx->height; i++) {
|
for (i = 0; i < sy2 - sy1 && (by + sy1 + i) < avctx->height && (by + mvy + sy1 + i) < avctx->height; i++) {
|
||||||
for (j = 0; j < sx2 - sx1 && (bx + sx1 + j) < avctx->width; j++) {
|
for (j = 0; j < sx2 - sx1 && (bx + sx1 + j) < avctx->width && (bx + mvx + sx1 + j) < avctx->width; j++) {
|
||||||
dst[(by + i + sy1) * linesize + bx + sx1 + j] = prev[(by + mvy + sy1 + i) * plinesize + bx + sx1 + mvx + j];
|
dst[(by + i + sy1) * linesize + bx + sx1 + j] = prev[(by + mvy + sy1 + i) * plinesize + bx + sx1 + mvx + j];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue