From 1d33d1c8eaece0d02c4352fc0e663b3628cc42d1 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Wed, 2 Dec 2020 15:43:15 +1100 Subject: avviddec: take the maximum of the height/coded_height Otherwise, some h.264 streams (particularly with cropping information) may cause memory corruption after a renegotiation to a smaller size when decoded and then ffmpeg writes past the end of the buffer. Fixes: https://gitlab.freedesktop.org/gstreamer/gst-libav/-/issues/80 Part-of: --- ext/libav/gstavviddec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/libav/gstavviddec.c b/ext/libav/gstavviddec.c index fbcd08c..a0a9dab 100644 --- a/ext/libav/gstavviddec.c +++ b/ext/libav/gstavviddec.c @@ -682,7 +682,7 @@ gst_ffmpegvideodec_prepare_dr_pool (GstFFMpegVidDec * ffmpegdec, gsize max_align; width = GST_VIDEO_INFO_WIDTH (info); - height = GST_VIDEO_INFO_HEIGHT (info); + height = MAX (GST_VIDEO_INFO_HEIGHT (info), ffmpegdec->context->coded_height); /* let ffmpeg find the alignment and padding */ avcodec_align_dimensions2 (ffmpegdec->context, &width, &height, -- cgit v1.2.1