diff mbox series

[FFmpeg-devel,5/6] swscale/swscale: Use ptrdiff_t for linesize computations

Message ID 20240609154746.4173264-5-michael@niedermayer.cc
State New
Headers show
Series [FFmpeg-devel,1/6] avutil/hwcontext_d3d11va: correct sizeof AVD3D11FrameDescriptor | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Michael Niedermayer June 9, 2024, 3:47 p.m. UTC
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>
---
 libswscale/swscale.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Michael Niedermayer July 7, 2024, 8:24 p.m. UTC | #1
Hi

will apply this and the next patch


On Sun, Jun 09, 2024 at 05:47:45PM +0200, Michael Niedermayer wrote:
> 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>
> ---
>  libswscale/swscale.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 

[...]
diff mbox series

Patch

diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 2795429b6c3..7fb24ee04bb 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -1173,7 +1173,7 @@  int sws_receive_slice(struct SwsContext *c, unsigned int slice_start,
     }
 
     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);
     }
 
@@ -1234,7 +1234,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++) {
             const int vshift = (i == 1 || i == 2) ? c->chrDstVSubSample : 0;
             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;
         }