Hello Guest

[FIXED] clGetProgramInfo crashes because of wrong size computation

  • 1 Replies
  • 7216 Views
The Java code in CL10 passes:
   param_value.length * PointerBuffer.getPointerSize() as param_value_size

but the C code assumes that this parameter is the number of buffers:
   cl_uchar **param_value_ptr = (cl_uchar **) malloc(param_value_size * sizeof(cl_uchar *));
   while ( _ptr_i < param_value_size ) {
      _ptr_object = (*env)->GetObjectArrayElement(env, param_value, _ptr_i);
      param_value_ptr[_ptr_i++] = (cl_uchar *)(intptr_t)getPointerWrapperAddress(env, _ptr_object);
   }

So this mismatch causes a crash when this function is called - eg through ClProgram.getInfoBinaries

*

Offline spasi

  • *****
  • 2261
    • WebHotelier
Thanks for the report. There were multiple bugs to blame actually, everything should be fixed in the next nightly.