[08/11] yop: Clear all references to the AVBuffer in the local AVPacket

Message ID 1379599756-27062-8-git-send-email-martin@martin.st
State Committed
Commit d8b68660145c76a23fc9665f96932449514ecad2
Headers show

Commit Message

Martin Storsjö Sept. 19, 2013, 2:09 p.m.
This makes sure that it doesn't try to free an AVBuffer belonging
to an earlier packet when we free the local packet at the end.

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
---
 libavformat/yop.c |    6 ++++++
 1 file changed, 6 insertions(+)

Comments

Luca Barbato Sept. 19, 2013, 2:25 p.m. | #1
On 19/09/13 16:09, Martin Storsjö wrote:
> This makes sure that it doesn't try to free an AVBuffer belonging
> to an earlier packet when we free the local packet at the end.
> 

Ok.

Patch

diff --git a/libavformat/yop.c b/libavformat/yop.c
index 5fe6bdc..8caeb07 100644
--- a/libavformat/yop.c
+++ b/libavformat/yop.c
@@ -127,6 +127,12 @@  static int yop_read_packet(AVFormatContext *s, AVPacket *pkt)
     if (yop->video_packet.data) {
         *pkt                   =  yop->video_packet;
         yop->video_packet.data =  NULL;
+        yop->video_packet.buf  =  NULL;
+#if FF_API_DESTRUCT_PACKET
+FF_DISABLE_DEPRECATION_WARNINGS
+        yop->video_packet.destruct = NULL;
+FF_ENABLE_DEPRECATION_WARNINGS
+#endif
         yop->video_packet.size =  0;
         pkt->data[0]           =  yop->odd_frame;
         pkt->flags             |= AV_PKT_FLAG_KEY;