From 9677247b0a6d86fa11e660e940d4836926b9bdaf Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Wed, 22 Feb 2012 19:31:40 -0500 Subject: oggenc: free comment header for all codecs fixes a memleak for Vorbis and Theora, where the comment header from avpriv_split_xiph_headers() is replaced by a buffer that must be freed separately. --- libavformat/oggenc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libavformat/oggenc.c') diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c index 33aba87039..f9472693f0 100644 --- a/libavformat/oggenc.c +++ b/libavformat/oggenc.c @@ -388,10 +388,10 @@ static int ogg_write_header(AVFormatContext *s) p = ogg_write_vorbiscomment(7, st->codec->flags & CODEC_FLAG_BITEXACT, &oggstream->header_len[1], &s->metadata, framing_bit); + oggstream->header[1] = p; if (!p) return AVERROR(ENOMEM); - oggstream->header[1] = p; bytestream_put_byte(&p, header_type); bytestream_put_buffer(&p, cstr, 6); @@ -497,8 +497,8 @@ static int ogg_write_trailer(AVFormatContext *s) if (st->codec->codec_id == CODEC_ID_FLAC || st->codec->codec_id == CODEC_ID_SPEEX) { av_free(oggstream->header[0]); - av_free(oggstream->header[1]); } + av_freep(&oggstream->header[1]); av_freep(&st->priv_data); } return 0; -- cgit v1.2.3