We already allocate the internal extradata buffer with initialized
padding in flv_queue_extradata, but when copied into side data
(which is allocated by av_packet_new_side_data, which does allocate
the padding but doesn't initialize it), we forgot to initialize
the padding there.
---
 libavformat/flvdec.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index 81a71d39f4..23d320900b 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -989,6 +989,10 @@ skip:
         if (side) {
             memcpy(side, flv->new_extradata[is_audio],
                    flv->new_extradata_size[is_audio]);
+            // av_packet_new_side_data allocates space for padding but doesn't
+            // initialize it.
+            memset(side + flv->new_extradata_size[is_audio], 0,
+                   AV_INPUT_BUFFER_PADDING_SIZE);
             av_freep(&flv->new_extradata[is_audio]);
             flv->new_extradata_size[is_audio] = 0;
         }
-- 
2.14.3 (Apple Git-98)

_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to