mirror of https://git.ffmpeg.org/ffmpeg.git
avformat/sccdec: Fix memleak upon read header failure
The already parsed subtitles (contained in an FFDemuxSubtitlesQueue) would leak if an error happened upon reading a subsequent subtitle. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
f161f8e4ad
commit
f3c63e67bb
|
@ -144,7 +144,7 @@ try_again:
|
||||||
|
|
||||||
sub = ff_subtitles_queue_insert(&scc->q, out, i, 0);
|
sub = ff_subtitles_queue_insert(&scc->q, out, i, 0);
|
||||||
if (!sub)
|
if (!sub)
|
||||||
return AVERROR(ENOMEM);
|
goto fail;
|
||||||
|
|
||||||
current_pos += i;
|
current_pos += i;
|
||||||
sub->pos = current_pos;
|
sub->pos = current_pos;
|
||||||
|
@ -159,7 +159,7 @@ try_again:
|
||||||
|
|
||||||
sub = ff_subtitles_queue_insert(&scc->q, out, i, 0);
|
sub = ff_subtitles_queue_insert(&scc->q, out, i, 0);
|
||||||
if (!sub)
|
if (!sub)
|
||||||
return AVERROR(ENOMEM);
|
goto fail;
|
||||||
|
|
||||||
sub->pos = current_pos;
|
sub->pos = current_pos;
|
||||||
sub->pts = ts_start;
|
sub->pts = ts_start;
|
||||||
|
@ -178,6 +178,9 @@ try_again:
|
||||||
ff_subtitles_queue_finalize(s, &scc->q);
|
ff_subtitles_queue_finalize(s, &scc->q);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
fail:
|
||||||
|
ff_subtitles_queue_clean(&scc->q);
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int scc_read_packet(AVFormatContext *s, AVPacket *pkt)
|
static int scc_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||||
|
|
Loading…
Reference in New Issue