mirror of https://git.ffmpeg.org/ffmpeg.git
swscale/swscale: Use ptrdiff_t for linesize computations
This is unlikely to make a difference Fixes: CID1591896 Unintentional integer overflow Fixes: CID1591901 Unintentional integer overflow Sponsored-by: Sovereign Tech Fund Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
62d4414d54
commit
66b60bae68
|
@ -1175,7 +1175,7 @@ int sws_receive_slice(struct SwsContext *c, unsigned int slice_start,
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < FF_ARRAY_ELEMS(dst); i++) {
|
for (int i = 0; i < FF_ARRAY_ELEMS(dst); i++) {
|
||||||
ptrdiff_t offset = c->frame_dst->linesize[i] * (slice_start >> c->chrDstVSubSample);
|
ptrdiff_t offset = c->frame_dst->linesize[i] * (ptrdiff_t)(slice_start >> c->chrDstVSubSample);
|
||||||
dst[i] = FF_PTR_ADD(c->frame_dst->data[i], offset);
|
dst[i] = FF_PTR_ADD(c->frame_dst->data[i], offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1236,7 +1236,7 @@ void ff_sws_slice_worker(void *priv, int jobnr, int threadnr,
|
||||||
for (int i = 0; i < FF_ARRAY_ELEMS(dst) && parent->frame_dst->data[i]; i++) {
|
for (int i = 0; i < FF_ARRAY_ELEMS(dst) && parent->frame_dst->data[i]; i++) {
|
||||||
const int vshift = (i == 1 || i == 2) ? c->chrDstVSubSample : 0;
|
const int vshift = (i == 1 || i == 2) ? c->chrDstVSubSample : 0;
|
||||||
const ptrdiff_t offset = parent->frame_dst->linesize[i] *
|
const ptrdiff_t offset = parent->frame_dst->linesize[i] *
|
||||||
((slice_start + parent->dst_slice_start) >> vshift);
|
(ptrdiff_t)((slice_start + parent->dst_slice_start) >> vshift);
|
||||||
|
|
||||||
dst[i] = parent->frame_dst->data[i] + offset;
|
dst[i] = parent->frame_dst->data[i] + offset;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue