summaryrefslogtreecommitdiff
path: root/libavformat/mp3enc.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-03-22 01:26:48 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-03-22 01:26:48 +0100
commitd003a0cd2e587a47627fd328f9fc5a484adc29f2 (patch)
treef7c3ab3c869223f509ead81ae85eb204b20f710c /libavformat/mp3enc.c
parent1b4f2fb165a3494c20f95b203a8beef1a1d4435d (diff)
downloadffmpeg-d003a0cd2e587a47627fd328f9fc5a484adc29f2.tar.gz
avformat/mp3enc: use av_copy_packet()
Fixes double free Fixes Ticket3476 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/mp3enc.c')
-rw-r--r--libavformat/mp3enc.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/libavformat/mp3enc.c b/libavformat/mp3enc.c
index adf6a32572..2ae74f9afb 100644
--- a/libavformat/mp3enc.c
+++ b/libavformat/mp3enc.c
@@ -417,14 +417,14 @@ static int mp3_write_packet(AVFormatContext *s, AVPacket *pkt)
if (mp3->pics_to_write) {
/* buffer audio packets until we get all the pictures */
AVPacketList *pktl = av_mallocz(sizeof(*pktl));
+ int ret;
if (!pktl)
return AVERROR(ENOMEM);
- pktl->pkt = *pkt;
- pktl->pkt.buf = av_buffer_ref(pkt->buf);
- if (!pktl->pkt.buf) {
+ ret = av_copy_packet(&pktl->pkt, pkt);
+ if (ret < 0) {
av_freep(&pktl);
- return AVERROR(ENOMEM);
+ return ret;
}
if (mp3->queue_end)