X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Frealtextdec.c;h=c2316da0ed8d1878df8d85fae698cc8d7502edef;hb=2d8d554f15a7a27cfeca81467cc9341a86f784e2;hp=618d4f78ecfce5ff59c573fec663143fd0b0d72d;hpb=06476249cd2332e30b66576633b2827adf3478dd;p=ffmpeg diff --git a/libavformat/realtextdec.c b/libavformat/realtextdec.c index 618d4f78ecf..c2316da0ed8 100644 --- a/libavformat/realtextdec.c +++ b/libavformat/realtextdec.c @@ -35,7 +35,7 @@ typedef struct { FFDemuxSubtitlesQueue q; } RealTextContext; -static int realtext_probe(AVProbeData *p) +static int realtext_probe(const AVProbeData *p) { char buf[7]; FFTextReader tr; @@ -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; }