diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2012-02-22 19:31:40 -0500 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2012-02-24 13:15:41 -0500 |
commit | 9677247b0a6d86fa11e660e940d4836926b9bdaf (patch) | |
tree | 334b57ca3e5f610914f86270fe7531eb1d218f4e /libavformat | |
parent | be129271eac04f91393bf42a490ec631e1a9abea (diff) | |
download | ffmpeg-9677247b0a6d86fa11e660e940d4836926b9bdaf.tar.gz |
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.
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/oggenc.c | 4 |
1 files changed, 2 insertions, 2 deletions
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; |