aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-09-04 14:22:20 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-09-04 14:29:20 +0200
commit2ffead98ddd384f61cdf6b1cb3f36592f54cd34a (patch)
tree1d1f50cf69e47a499ad4f113220b644b7f7e3746
parent3eeca8b0e4e018ba7eecaea4aa1a3e40665ed42a (diff)
downloadffmpeg-2ffead98ddd384f61cdf6b1cb3f36592f54cd34a.tar.gz
avcodec: add emuedge_linesize_type
Currently all uses of the emu edge code as well as the code itself assume int linesize changing some but not changing all would introduce a security issue once all use this typedef a simple search and replace can be done to switch them all to ptrdiff_t Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/mpegvideo_motion.c3
-rw-r--r--libavcodec/videodsp.h2
-rw-r--r--libavcodec/videodsp_template.c2
-rw-r--r--libavcodec/x86/videodsp_init.c2
4 files changed, 6 insertions, 3 deletions
diff --git a/libavcodec/mpegvideo_motion.c b/libavcodec/mpegvideo_motion.c
index 96b37800d8..3851739512 100644
--- a/libavcodec/mpegvideo_motion.c
+++ b/libavcodec/mpegvideo_motion.c
@@ -214,7 +214,8 @@ void mpeg_motion_internal(MpegEncContext *s,
{
uint8_t *ptr_y, *ptr_cb, *ptr_cr;
int dxy, uvdxy, mx, my, src_x, src_y,
- uvsrc_x, uvsrc_y, v_edge_pos, uvlinesize, linesize;
+ uvsrc_x, uvsrc_y, v_edge_pos;
+ emuedge_linesize_type uvlinesize, linesize;
#if 0
if(s->quarter_sample)
diff --git a/libavcodec/videodsp.h b/libavcodec/videodsp.h
index e397720773..07519d71ba 100644
--- a/libavcodec/videodsp.h
+++ b/libavcodec/videodsp.h
@@ -29,6 +29,8 @@
#include <stddef.h>
#include <stdint.h>
+typedef int emuedge_linesize_type;
+
#define EMULATED_EDGE(depth) \
void ff_emulated_edge_mc_ ## depth (uint8_t *buf, const uint8_t *src, ptrdiff_t linesize,\
int block_w, int block_h,\
diff --git a/libavcodec/videodsp_template.c b/libavcodec/videodsp_template.c
index 44f6a4d63e..1f709c499d 100644
--- a/libavcodec/videodsp_template.c
+++ b/libavcodec/videodsp_template.c
@@ -27,7 +27,7 @@ void FUNC(ff_emulated_edge_mc)(uint8_t *buf, const uint8_t *src,
{
int x, y;
int start_y, start_x, end_y, end_x;
- int linesize = linesize_arg;
+ emuedge_linesize_type linesize = linesize_arg;
if (!w || !h)
return;
diff --git a/libavcodec/x86/videodsp_init.c b/libavcodec/x86/videodsp_init.c
index 17c9ed9511..95c71a280f 100644
--- a/libavcodec/x86/videodsp_init.c
+++ b/libavcodec/x86/videodsp_init.c
@@ -46,7 +46,7 @@ static av_always_inline void emulated_edge_mc(uint8_t *buf, const uint8_t *src,
emu_edge_core_func *core_fn)
{
int start_y, start_x, end_y, end_x, src_y_add = 0;
- int linesize = linesize_arg;
+ emuedge_linesize_type linesize = linesize_arg;
if(!w || !h)
return;