You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	avformat/tedcaptionsdec: Fix memleak upon read header failure
The already parsed subtitles (contained in an FFDemuxSubtitlesQueue)
would leak if allocating the AVStream for the subtitles fails.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
(cherry picked from commit 337783b118)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
			
			
This commit is contained in:
		| @@ -275,10 +275,13 @@ static int parse_file(AVIOContext *pb, FFDemuxSubtitlesQueue *subs) | ||||
| static av_cold int tedcaptions_read_header(AVFormatContext *avf) | ||||
| { | ||||
|     TEDCaptionsDemuxer *tc = avf->priv_data; | ||||
|     AVStream *st; | ||||
|     AVStream *st = avformat_new_stream(avf, NULL); | ||||
|     int ret, i; | ||||
|     AVPacket *last; | ||||
|  | ||||
|     if (!st) | ||||
|         return AVERROR(ENOMEM); | ||||
|  | ||||
|     ret = parse_file(avf->pb, &tc->subs); | ||||
|     if (ret < 0) { | ||||
|         if (ret == AVERROR_INVALIDDATA) | ||||
| @@ -292,9 +295,6 @@ static av_cold int tedcaptions_read_header(AVFormatContext *avf) | ||||
|         tc->subs.subs[i].pts += tc->start_time; | ||||
|  | ||||
|     last = &tc->subs.subs[tc->subs.nb_subs - 1]; | ||||
|     st = avformat_new_stream(avf, NULL); | ||||
|     if (!st) | ||||
|         return AVERROR(ENOMEM); | ||||
|     st->codecpar->codec_type     = AVMEDIA_TYPE_SUBTITLE; | ||||
|     st->codecpar->codec_id       = AV_CODEC_ID_TEXT; | ||||
|     avpriv_set_pts_info(st, 64, 1, 1000); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user