From 5d6a3fbc1e5d7be3f8a37bf16b8784eb8593c3df Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Tue, 27 May 2014 01:40:29 -0500
Subject: [PATCH] Fix new buffer interface usage in set_arg

---
 src/wrapper/wrap_cl.hpp | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/wrapper/wrap_cl.hpp b/src/wrapper/wrap_cl.hpp
index 5c9ddd6e..af524fd9 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;
-- 
GitLab