diff --git a/ffmpeg-y/libavfilter/vf_edgedetect.c b/ffmpeg-y/libavfilter/vf_edgedetect.c index a0ddcbbf5c69c6b68a9faab3f516f10b67211323..0bc46adf54b6ec87d3cea93e154e26c4508e83e5 100755 --- a/ffmpeg-y/libavfilter/vf_edgedetect.c +++ b/ffmpeg-y/libavfilter/vf_edgedetect.c @@ -150,7 +150,10 @@ static void gaussian_blur(AVFilterContext *ctx, int w, int h, int i, j; memcpy(dst, src, w); dst += dst_linesize; src += src_linesize; - memcpy(dst, src, w); dst += dst_linesize; src += src_linesize; + // mod begin: fix CVE-2020-22025 + if (h > 1) + memcpy(dst, src, w); dst += dst_linesize; src += src_linesize; + // mod end for (j = 2; j < h - 2; j++) { dst[0] = src[0]; dst[1] = src[1]; @@ -180,8 +183,12 @@ static void gaussian_blur(AVFilterContext *ctx, int w, int h, dst += dst_linesize; src += src_linesize; } - memcpy(dst, src, w); dst += dst_linesize; src += src_linesize; - memcpy(dst, src, w); + // mod begin: fix CVE-2020-22025 + if (h > 2) + memcpy(dst, src, w); dst += dst_linesize; src += src_linesize; + if (h > 3) + memcpy(dst, src, w); + // mod end } enum {