avfilter/vf_showinfo: check if the s12m data size is valid
authorLimin Wang <lance.lmwang@gmail.com>
Wed, 25 Mar 2020 10:45:47 +0000 (18:45 +0800)
committerMichael Niedermayer <michael@niedermayer.cc>
Fri, 27 Mar 2020 00:42:16 +0000 (01:42 +0100)
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavfilter/vf_showinfo.c

index 79b79db..71534d1 100644 (file)
@@ -318,6 +318,10 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
             break;
         case AV_FRAME_DATA_S12M_TIMECODE: {
             uint32_t *tc = (uint32_t*)sd->data;
+            if (sd->size != 16) {
+                av_log(ctx, AV_LOG_ERROR, "invalid data");
+                break;
+            }
             for (int j = 1; j <= tc[0]; j++) {
                 char tcbuf[AV_TIMECODE_STR_SIZE];
                 av_timecode_make_smpte_tc_string(tcbuf, tc[j], 0);