summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-03-22 01:26:48 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-03-23 20:31:05 +0100
commite39a992bd155455aebe07353c34a3e29b3b79f70 (patch)
treebdd8e7d689f4f4511a5b377c84b59843dfe6789c
parent72a12f61ef66b9d401a9acbff62c9791f21ac045 (diff)
downloadffmpeg-e39a992bd155455aebe07353c34a3e29b3b79f70.tar.gz
avformat/mp3enc: use av_copy_packet()
Fixes double free Fixes Ticket3476 Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit d003a0cd2e587a47627fd328f9fc5a484adc29f2) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-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)