CID: 1396852 check the devices_list alloc status, and release the devices_list when alloc devices error
Signed-off-by: Steven Liu <l...@chinaffmpeg.org> --- cmdutils_opencl.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cmdutils_opencl.c b/cmdutils_opencl.c index dd21344..5bbc8dc 100644 --- a/cmdutils_opencl.c +++ b/cmdutils_opencl.c @@ -220,15 +220,20 @@ int opt_opencl_bench(void *optctx, const char *opt, const char *arg) OpenCLDeviceBenchmark *devices = NULL; cl_platform_id platform; - av_opencl_get_device_list(&device_list); + if (av_opencl_get_device_list(&device_list) < 0) { + return AVERROR(ENOMEM); + } + for (i = 0; i < device_list->platform_num; i++) nb_devices += device_list->platform_node[i]->device_num; if (!nb_devices) { av_log(NULL, AV_LOG_ERROR, "No OpenCL device detected!\n"); + av_opencl_free_device_list(&device_list); return AVERROR(EINVAL); } if (!(devices = av_malloc_array(nb_devices, sizeof(OpenCLDeviceBenchmark)))) { av_log(NULL, AV_LOG_ERROR, "Could not allocate buffer\n"); + av_opencl_free_device_list(&device_list); return AVERROR(ENOMEM); } -- 2.10.1.382.ga23ca1b.dirty _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel