summaryrefslogtreecommitdiff
path: root/libavformat/oggenc.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2012-02-22 19:31:40 -0500
committerJustin Ruggles <justin.ruggles@gmail.com>2012-02-24 13:15:41 -0500
commit9677247b0a6d86fa11e660e940d4836926b9bdaf (patch)
tree334b57ca3e5f610914f86270fe7531eb1d218f4e /libavformat/oggenc.c
parentbe129271eac04f91393bf42a490ec631e1a9abea (diff)
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/oggenc.c')
-rw-r--r--libavformat/oggenc.c4
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;