On 28/01/2018 03:24, Sean McGovern wrote:
Bug-Id: 1101
Cc: [email protected]
---
  libavcodec/vc1_mc.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/libavcodec/vc1_mc.c b/libavcodec/vc1_mc.c
index f4632d6..fb5ca75 100644
--- a/libavcodec/vc1_mc.c
+++ b/libavcodec/vc1_mc.c
@@ -713,6 +713,11 @@ void ff_vc1_mc_4mv_chroma4(VC1Context *v, int dir, int 
dir2, int avg)
              lutuv  = v->next_lutuv;
              use_ic = v->next_use_ic;
          } else {
+            if (!s->last_picture.f->data[1]) {
+              av_log(s->avctx, AV_LOG_WARNING, "Bad data in last picture 
frame.\n");
+              return;
+            }
+
              srcU = s->last_picture.f->data[1] + uvsrc_y * s->uvlinesize + 
uvsrc_x;
              srcV = s->last_picture.f->data[2] + uvsrc_y * s->uvlinesize + 
uvsrc_x;
              lutuv  = v->last_lutuv;


You should check for s->last_picture.f->data[0] outside the loop.

Look at ff_vc1_mc_4mv_chroma(), probably the same check does apply.

lu
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to