[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