[Mesa-dev] [PATCH] st/clover: Don't segfault on clCreateBuffer with null context

Aaron Watry awatry at gmail.com
Thu Apr 3 16:19:52 PDT 2014


This should fix a segfault in the case that you're not using ocl-icd.

If you're using ocl-icd, make sure your version is new enough or you'll get
the segfault before you even get to clover.

The null de-ref seems to have been introduced in 10.1, but earlier versions
have have also been affected in other ways.

CC: "10.1" <mesa-stable at lists.freedesktop.org>

Signed-off-by: Aaron Watry <awatry at gmail.com>
---
 src/gallium/state_trackers/clover/api/memory.cpp | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/gallium/state_trackers/clover/api/memory.cpp b/src/gallium/state_trackers/clover/api/memory.cpp
index 7ed2191..dad5ad3 100644
--- a/src/gallium/state_trackers/clover/api/memory.cpp
+++ b/src/gallium/state_trackers/clover/api/memory.cpp
@@ -32,6 +32,9 @@ clCreateBuffer(cl_context d_ctx, cl_mem_flags flags, size_t size,
                void *host_ptr, cl_int *r_errcode) try {
    auto &ctx = obj(d_ctx);
 
+   if (d_ctx == NULL)
+	   throw error(CL_INVALID_CONTEXT);
+
    if (bool(host_ptr) != bool(flags & (CL_MEM_USE_HOST_PTR |
                                        CL_MEM_COPY_HOST_PTR)))
       throw error(CL_INVALID_HOST_PTR);
-- 
1.8.3.2



More information about the mesa-dev mailing list