diff --git a/src/wrapper/wrap_cl.hpp b/src/wrapper/wrap_cl.hpp index 5c9ddd6e543799bbbad41489eccd14c7332bfc75..af524fd9b7bdb3d984352ce10c2fb63227ad1a88 100644 --- a/src/wrapper/wrap_cl.hpp +++ b/src/wrapper/wrap_cl.hpp @@ -3590,7 +3590,16 @@ namespace pyopencl #ifdef PYOPENCL_USE_NEW_BUFFER_INTERFACE py_buffer_wrapper buf_wrapper; - buf_wrapper.get(py_buffer.ptr(), PyBUF_ANY_CONTIGUOUS); + try + { + buf_wrapper.get(py_buffer.ptr(), PyBUF_ANY_CONTIGUOUS); + } + catch (py::error_already_set) + { + PyErr_Clear(); + throw error("Kernel.set_arg", CL_INVALID_VALUE, + "invalid kernel argument"); + } buf = buf_wrapper.m_buf.buf; len = buf_wrapper.m_buf.len;