[FFmpeg-devel] [PATCH] avfilter/opencl: Fix program_opencl for source code larger than 64kB
Tsutomu Seki
sekiriki at gmail.com
Thu May 6 08:13:15 EEST 2021
avfilter/opencl: Fix program_opencl for source code larger than 64kB
libavfilter/opencl.c:253:
while (1) {
rb = fread(src + pos, 1, len - pos - 1, file);
if (rb == 0 && ferror(file)) {
err = AVERROR(EIO);
goto fail;
}
pos += rb;
if (pos < len)
break;
len <<= 1;
err = av_reallocp(&src, len);
if (err < 0)
goto fail;
}
In this code, the condition (pos < len) is always true and the
rest of the OpenCL program code would not be read, while
the maximum number of "rb" is "len - pos - 1", and then, the
maximum number of the "pos" is "len - 1".
Fixes: trac.ffmpeg.org/ticket/9217
---
libavfilter/opencl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/opencl.c b/libavfilter/opencl.c
index 9c46cfdc09..8f05696e62 100644
--- a/libavfilter/opencl.c
+++ b/libavfilter/opencl.c
@@ -257,7 +257,7 @@ int
ff_opencl_filter_load_program_from_file(AVFilterContext *avctx,
goto fail;
}
pos += rb;
- if (pos < len)
+ if (pos + 1 < len)
break;
len <<= 1;
err = av_reallocp(&src, len);
--
2.25.1
More information about the ffmpeg-devel
mailing list