[FFmpeg-devel] [PATCH 6/7] avcodec/escape124: Fix segfault with negative linesizes

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Fri Sep 30 20:05:14 EEST 2022


Use ptrdiff_t instead of unsigned for linesizes.
Fixes the armovie-escape124 FATE test with negative linesizes.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 libavcodec/escape124.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavcodec/escape124.c b/libavcodec/escape124.c
index eeeb9bb0f7..024eec59ce 100644
--- a/libavcodec/escape124.c
+++ b/libavcodec/escape124.c
@@ -178,8 +178,8 @@ static void insert_mb_into_sb(SuperBlock* sb, MacroBlock mb, unsigned index) {
    dst[4] = mb.pixels32[1];
 }
 
-static void copy_superblock(uint16_t* dest, unsigned dest_stride,
-                            uint16_t* src, unsigned src_stride)
+static void copy_superblock(uint16_t* dest, ptrdiff_t dest_stride,
+                            uint16_t* src,  ptrdiff_t src_stride)
 {
     unsigned y;
     if (src)
@@ -211,7 +211,7 @@ static int escape124_decode_frame(AVCodecContext *avctx, AVFrame *frame,
              superblocks_per_row = avctx->width / 8, skip = -1;
 
     uint16_t* old_frame_data, *new_frame_data;
-    unsigned old_stride, new_stride;
+    ptrdiff_t old_stride, new_stride;
 
     int ret;
 
-- 
2.34.1



More information about the ffmpeg-devel mailing list