summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeunghun Lee <shiin.lee@samsung.com>2015-05-20 22:46:56 +0900
committerSeunghun Lee <shiin.lee@samsung.com>2015-05-20 23:21:53 +0900
commitbef45e09ded429d000261d1ade86971abcaf0fdd (patch)
tree2a3e73ea6dbce7434a1273a311c8019e8e80c452
parent60b7a5f37bda3f4b654a5b4591c27c5c04d311e1 (diff)
downloadefl-bef45e09ded429d000261d1ade86971abcaf0fdd.tar.gz
ecore-buffer: check if NULL before using function pointer
Change-Id: Iee774c7ab702b850c3de8f8de49b361af28cb49c
-rw-r--r--src/lib/ecore_buffer/ecore_buffer.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/ecore_buffer/ecore_buffer.c b/src/lib/ecore_buffer/ecore_buffer.c
index 2e93b0f5cb..ef1a68a9f6 100644
--- a/src/lib/ecore_buffer/ecore_buffer.c
+++ b/src/lib/ecore_buffer/ecore_buffer.c
@@ -247,6 +247,14 @@ ecore_buffer_new(const char* engine, unsigned int width, unsigned int height, Ec
return NULL;
}
+ EINA_SAFETY_ON_NULL_RETURN_VAL(bm->be, NULL);
+
+ if (!bm->be->buffer_alloc)
+ {
+ ERR("Not supported create buffer");
+ return NULL;
+ }
+
bo_data = bm->be->buffer_alloc(bm->data, width, height, format, flags);
if (!bo_data)
return NULL;
@@ -283,6 +291,12 @@ ecore_buffer_new_with_tbm_surface(const char *engine, void *tbm_surface, unsigne
EINA_SAFETY_ON_NULL_RETURN_VAL(bm->be, NULL);
+ if (!bm->be->buffer_alloc_with_tbm_surface)
+ {
+ ERR("Not supported create buffer with tbm_surface");
+ return NULL;
+ }
+
bo_data = bm->be->buffer_alloc_with_tbm_surface(bm->data, tbm_surface,
&w, &h, &format, flags);
if (!bo_data)
@@ -475,6 +489,12 @@ _ecore_buffer_import(const char* engine, int width, int height, Ecore_Buffer_For
EINA_SAFETY_ON_NULL_RETURN_VAL(bm->be, NULL);
+ if (!bm->be->buffer_import)
+ {
+ ERR("Not supported import buffer");
+ return NULL;
+ }
+
bo_data = bm->be->buffer_import(bm->data, width, height, format, type, export_id, flags);
if (!bo_data)
return NULL;