summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYang Rong <rong.r.yang@intel.com>2016-12-16 16:59:47 +0800
committerYang Rong <rong.r.yang@intel.com>2016-12-29 17:10:49 +0800
commit5d2be2884bdf54298d30c8f68d012c8c34aaedd3 (patch)
treeeb9be48280a91390167fc58473c1fb318d3603b0 /src
parent45ccad6e5da00bab88893874c2d94222f92f04c8 (diff)
downloadbeignet-5d2be2884bdf54298d30c8f68d012c8c34aaedd3.tar.gz
Add the NULL pointer check.
Signed-off-by: Yang Rong <rong.r.yang@intel.com> Reviewed-by: Ruiling Song <ruiling.song@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/cl_device_id.c2
-rw-r--r--src/cl_event.c2
-rw-r--r--src/cl_kernel.c3
-rw-r--r--src/cl_program.c26
-rw-r--r--src/performance.c6
5 files changed, 26 insertions, 13 deletions
diff --git a/src/cl_device_id.c b/src/cl_device_id.c
index d6c7ff6d..31f8616c 100644
--- a/src/cl_device_id.c
+++ b/src/cl_device_id.c
@@ -1389,7 +1389,7 @@ cl_check_builtin_kernel_dimension(cl_kernel kernel, cl_device_id device)
const char * n = cl_kernel_get_name(kernel);
const char * builtin_kernels_2d = "__cl_copy_image_2d_to_2d;__cl_copy_image_2d_to_buffer;__cl_copy_buffer_to_image_2d;__cl_fill_image_2d;__cl_fill_image_2d_array;";
const char * builtin_kernels_3d = "__cl_copy_image_3d_to_2d;__cl_copy_image_2d_to_3d;__cl_copy_image_3d_to_3d;__cl_copy_image_3d_to_buffer;__cl_copy_buffer_to_image_3d;__cl_fill_image_3d";
- if (!strstr(device->built_in_kernels, n)){
+ if (n == NULL || !strstr(device->built_in_kernels, n)){
return 0;
}else if(strstr(builtin_kernels_2d, n)){
return 2;
diff --git a/src/cl_event.c b/src/cl_event.c
index e65cc190..4dcc7287 100644
--- a/src/cl_event.c
+++ b/src/cl_event.c
@@ -271,7 +271,7 @@ cl_event_create(cl_context ctx, cl_command_queue queue, cl_uint num_events,
CL_OBJECT_UNLOCK(queue);
for (i = 0; i < num_events; i++) {
- assert(event_list[i]);
+ assert(event_list && event_list[i]);
assert(event_list[i]->ctx == ctx);
assert(CL_OBJECT_IS_EVENT(event_list[i]));
cl_event_add_ref(event_list[i]);
diff --git a/src/cl_kernel.c b/src/cl_kernel.c
index 88b62483..63a9f281 100644
--- a/src/cl_kernel.c
+++ b/src/cl_kernel.c
@@ -435,7 +435,8 @@ cl_kernel_setup(cl_kernel k, gbe_kernel opaque)
k->opaque = opaque;
const char* kname = cl_kernel_get_name(k);
- if (strncmp(kname, "block_motion_estimate_intel", sizeof("block_motion_estimate_intel")) == 0)
+ if (kname != NULL &&
+ strncmp(kname, "block_motion_estimate_intel", sizeof("block_motion_estimate_intel")) == 0)
k->vme = 1;
else
k->vme = 0;
diff --git a/src/cl_program.c b/src/cl_program.c
index 2e0b5bac..03587055 100644
--- a/src/cl_program.c
+++ b/src/cl_program.c
@@ -413,7 +413,7 @@ cl_program_create_with_built_in_kernles(cl_context ctx,
for (i = 0; i < ctx->built_in_prgs->ker_n; ++i) {
assert(ctx->built_in_prgs->ker[i]);
const char *ker_name = cl_kernel_get_name(ctx->built_in_prgs->ker[i]);
- if (strcmp(ker_name, kernel) == 0) {
+ if (ker_name != NULL && strcmp(ker_name, kernel) == 0) {
break;
}
}
@@ -539,7 +539,7 @@ static int check_cl_version_option(cl_program p, const char* options) {
const char* s = NULL;
int ver1 = 0;
int ver2 = 0;
- char version_str[64];
+ char version_str[64] = {0};
if (options && (s = strstr(options, "-cl-std="))) {
@@ -945,7 +945,7 @@ cl_program_create_kernel(cl_program p, const char *name, cl_int *errcode_ret)
for (i = 0; i < p->ker_n; ++i) {
assert(p->ker[i]);
const char *ker_name = cl_kernel_get_name(p->ker[i]);
- if (strcmp(ker_name, name) == 0) {
+ if (ker_name != NULL && strcmp(ker_name, name) == 0) {
from = p->ker[i];
break;
}
@@ -1004,10 +1004,13 @@ cl_program_get_kernel_names(cl_program p, size_t size, char *names, size_t *size
return;
}
- ker_name = cl_kernel_get_name(p->ker[i]);
- len = strlen(ker_name);
- if(names) {
- strncpy(names, cl_kernel_get_name(p->ker[0]), size - 1);
+ ker_name = cl_kernel_get_name(p->ker[0]);
+ if (ker_name != NULL)
+ len = strlen(ker_name);
+ else
+ len = 0;
+ if(names && ker_name) {
+ strncpy(names, ker_name, size - 1);
names[size - 1] = '\0';
if(size < len - 1) {
if(size_ret) *size_ret = size;
@@ -1015,12 +1018,15 @@ cl_program_get_kernel_names(cl_program p, size_t size, char *names, size_t *size
}
size = size - len - 1; //sub \0
}
- if(size_ret) *size_ret = strlen(ker_name) + 1; //add NULL
+ if(size_ret) *size_ret = len + 1; //add NULL
for (i = 1; i < p->ker_n; ++i) {
ker_name = cl_kernel_get_name(p->ker[i]);
- len = strlen(ker_name);
- if(names) {
+ if (ker_name != NULL)
+ len = strlen(ker_name);
+ else
+ len = 0;
+ if(names && ker_name) {
strncat(names, ";", size);
if(size >= 1)
strncat(names, ker_name, size - 1);
diff --git a/src/performance.c b/src/performance.c
index 28bd6c62..1e676c3e 100644
--- a/src/performance.c
+++ b/src/performance.c
@@ -54,6 +54,8 @@ static context_storage_node * find_context(cl_context context)
if(NULL == record.context_storage)
{
record.context_storage = (context_storage_node *) malloc(sizeof(context_storage_node));
+ if (record.context_storage == NULL)
+ return NULL;
record.context_storage->context_id = (uintptr_t)context;
record.context_storage->kernels_storage = NULL;
record.context_storage->kernel_max_time = 0.0f;
@@ -96,6 +98,8 @@ static kernel_storage_node * find_kernel(context_storage_node *p_context, const
if(NULL == p_context->kernels_storage)
{
p_context->kernels_storage = (kernel_storage_node *)malloc(sizeof(kernel_storage_node));
+ if (p_context->kernels_storage == NULL)
+ return NULL;
p_context->kernel_count++;
strncpy(p_context->kernels_storage->kernel_name,kernel_name, MAX_KERNEL_NAME_LENGTH);
p_context->kernels_storage->kernel_name[MAX_KERNEL_NAME_LENGTH - 1] = '\0';
@@ -188,6 +192,8 @@ static void print_time_info()
kernel_storage_node *p_kernel = p_context->kernels_storage;
kernel_storage_node *p_tmp_kernel = p_kernel;
time_element *te = (time_element *)malloc(sizeof(time_element)*p_context->kernel_count);
+ if (te == NULL)
+ return;
memset(te, 0, sizeof(time_element)*p_context->kernel_count);
int i = -1, j = 0, k = 0;
while(NULL != p_tmp_kernel)