Re: [FFmpeg-devel] [PATCH] avformat/utils: Fix memleak when decoding subtitle in find_stream_info

2020-04-20 Thread Andreas Rheinhardt
Anton Khirnov:
> Quoting Andreas Rheinhardt (2020-04-18 21:54:26)
>> avformat_find_stream_info() may decode some frames to get stream
>> information. And when it does this for subtitles, the decoded subtitles
>> leak.
>>
>> (Decoding subtitles was added in b1511e00f6fefde6cb31b2e17f7812cfac1c8bd6
>> for PGS subtitles. When PGS subtitles originate from a container that
>> exports every segment as a packet of its own, no output will be
>> generated when decoding a packet, because not enough input is available.
>> Yet when used with PGS subtitles in the Matroska form a single packet
>> contains enough data to generate output. Yet said output is not freed,
>> hence this leak.)
>>
>> Signed-off-by: Andreas Rheinhardt 
>> ---
> 
> Looks good.
> 
Applied, thanks.

- Andreas
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Re: [FFmpeg-devel] [PATCH] avformat/utils: Fix memleak when decoding subtitle in find_stream_info

2020-04-20 Thread Anton Khirnov
Quoting Andreas Rheinhardt (2020-04-18 21:54:26)
> avformat_find_stream_info() may decode some frames to get stream
> information. And when it does this for subtitles, the decoded subtitles
> leak.
> 
> (Decoding subtitles was added in b1511e00f6fefde6cb31b2e17f7812cfac1c8bd6
> for PGS subtitles. When PGS subtitles originate from a container that
> exports every segment as a packet of its own, no output will be
> generated when decoding a packet, because not enough input is available.
> Yet when used with PGS subtitles in the Matroska form a single packet
> contains enough data to generate output. Yet said output is not freed,
> hence this leak.)
> 
> Signed-off-by: Andreas Rheinhardt 
> ---

Looks good.

-- 
Anton Khirnov
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

[FFmpeg-devel] [PATCH] avformat/utils: Fix memleak when decoding subtitle in find_stream_info

2020-04-18 Thread Andreas Rheinhardt
avformat_find_stream_info() may decode some frames to get stream
information. And when it does this for subtitles, the decoded subtitles
leak.

(Decoding subtitles was added in b1511e00f6fefde6cb31b2e17f7812cfac1c8bd6
for PGS subtitles. When PGS subtitles originate from a container that
exports every segment as a packet of its own, no output will be
generated when decoding a packet, because not enough input is available.
Yet when used with PGS subtitles in the Matroska form a single packet
contains enough data to generate output. Yet said output is not freed,
hence this leak.)

Signed-off-by: Andreas Rheinhardt 
---
As soon as the new pgs_frame_merge bsf gets merged, we can add a test
that remuxes the sub/pgs_sub.sup file from the fate suite to Matroska
and reads/decodes the resulting file. Such a test would have caught
this.

 libavformat/utils.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index a58e47fabc..6b72c657d8 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -3125,6 +3125,8 @@ static int try_decode_frame(AVFormatContext *s, AVStream 
*st,
 } else if (avctx->codec_type == AVMEDIA_TYPE_SUBTITLE) {
 ret = avcodec_decode_subtitle2(avctx, &subtitle,
&got_picture, &pkt);
+if (got_picture)
+avsubtitle_free(&subtitle);
 if (ret >= 0)
 pkt.size = 0;
 }
-- 
2.20.1

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".