From 594e2b6832fd09baa2aa0d332db44d96648fb2e3 Mon Sep 17 00:00:00 2001
From: Yichao Yu <yyc1992@gmail.com>
Date: Sun, 22 Jun 2014 06:01:46 +0800
Subject: [PATCH] do not crash in clobj__* with nullptr input, which can happen
 in exception handler

---
 src/c_wrapper/wrap_cl.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/c_wrapper/wrap_cl.cpp b/src/c_wrapper/wrap_cl.cpp
index b7d1ddb9..338738a7 100644
--- a/src/c_wrapper/wrap_cl.cpp
+++ b/src/c_wrapper/wrap_cl.cpp
@@ -60,7 +60,7 @@ free_pointer_array(void **p, uint32_t size)
 intptr_t
 clobj__int_ptr(clobj_t obj)
 {
-    return obj->intptr();
+    return PYOPENCL_LIKELY(obj) ? obj->intptr() : 0l;
 }
 
 static PYOPENCL_INLINE clobj_t
@@ -110,6 +110,9 @@ error*
 clobj__get_info(clobj_t obj, cl_uint param, generic_info *out)
 {
     return c_handle_error([&] {
+            if (PYOPENCL_UNLIKELY(!obj)) {
+                throw clerror("NULL input", CL_INVALID_VALUE);
+            }
             *out = obj->get_info(param);
         });
 }
-- 
GitLab