[FFmpeg-cvslog] oggenc: free comment header for all codecs
Justin Ruggles
git at videolan.org
Sat Feb 25 04:28:17 CET 2012
ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Wed Feb 22 19:31:40 2012 -0500| [9677247b0a6d86fa11e660e940d4836926b9bdaf] | committer: Justin Ruggles
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.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9677247b0a6d86fa11e660e940d4836926b9bdaf
---
libavformat/oggenc.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c
index 33aba87..f947269 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;
More information about the ffmpeg-cvslog
mailing list