X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Frealtextdec.c;h=c2316da0ed8d1878df8d85fae698cc8d7502edef;hb=42fdf402a79a1af4c500757106abfb9154bbcd42;hp=e12871e6ad5255bf50d7d4dbcc61f90a7f527b97;hpb=67d466d09b105b2b1d3d8da4c21d8975925741ae;p=ffmpeg diff --git a/libavformat/realtextdec.c b/libavformat/realtextdec.c index e12871e6ad5..c2316da0ed8 100644 --- a/libavformat/realtextdec.c +++ b/libavformat/realtextdec.c @@ -87,6 +87,10 @@ static int realtext_read_header(AVFormatContext *s) /* save header to extradata */ const char *p = ff_smil_get_attr_ptr(buf.str, "duration"); + if (st->codecpar->extradata) { + res = AVERROR_INVALIDDATA; + goto end; + } if (p) duration = read_ts(p); st->codecpar->extradata = av_strdup(buf.str); @@ -119,6 +123,8 @@ static int realtext_read_header(AVFormatContext *s) end: av_bprint_finalize(&buf, NULL); + if (res < 0) + ff_subtitles_queue_clean(&rt->q); return res; }