-deinterlace allocates a temporary buffer that is freed immediately
after the frame is sent to lavfi, which results in use after free.

Disable direct rendering when -deinterlace is used.

CC:[email protected]
Bug-id: 479
---
Release only, -deinterlace is already dropped in master
---
 avconv.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/avconv.c b/avconv.c
index dd998ab..6544fc6 100644
--- a/avconv.c
+++ b/avconv.c
@@ -1215,7 +1215,7 @@ static int decode_video(InputStream *ist, AVPacket *pkt, 
int *got_output)
     }
 
     for (i = 0; i < ist->nb_filters; i++) {
-        if (ist->st->codec->codec->capabilities & CODEC_CAP_DR1) {
+        if (ist->st->codec->codec->capabilities & CODEC_CAP_DR1 && 
!do_deinterlace) {
             FrameBuffer      *buf = decoded_frame->opaque;
             AVFilterBufferRef *fb = avfilter_get_video_buffer_ref_from_arrays(
                                         decoded_frame->data, 
decoded_frame->linesize,
-- 
1.7.10.4

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to