diff --git a/projects/clr/opencl/amdocl/cl_common.hpp b/projects/clr/opencl/amdocl/cl_common.hpp index f41932d963..c61d89d4b2 100644 --- a/projects/clr/opencl/amdocl/cl_common.hpp +++ b/projects/clr/opencl/amdocl/cl_common.hpp @@ -56,8 +56,8 @@ clGetInfo( cl_int ret = CL_SUCCESS; if (param_value != NULL && param_value_size < valueSize) { - if (!std::is_pointer() || !std::is_same::type>::type, char>()) { + if ((param_value_size == 0) || !std::is_pointer() || !std::is_same::type>::type, char>()) { return CL_INVALID_VALUE; } // For char* and char[] params, we will at least fill up to diff --git a/projects/clr/opencl/amdocl/cl_icd.cpp b/projects/clr/opencl/amdocl/cl_icd.cpp index ec2cb48d7d..302a3ffb74 100644 --- a/projects/clr/opencl/amdocl/cl_icd.cpp +++ b/projects/clr/opencl/amdocl/cl_icd.cpp @@ -37,6 +37,10 @@ amd::PlatformIDS amd::PlatformID::Platform = //{ NULL }; static cl_int CL_API_CALL icdGetPlatformInfo(cl_platform_id platform, cl_platform_info param_name, size_t param_value_size, void* param_value, size_t* param_value_size_ret) { + if (platform != reinterpret_cast(&amd::PlatformID::Platform)) { + return CL_INVALID_PLATFORM; + } + return clGetPlatformInfo(NULL, param_name, param_value_size, param_value, param_value_size_ret); }