From ced0ea3fe85091351cd6b67325698c605f3db4d2 Mon Sep 17 00:00:00 2001 From: Changyeon Lee Date: Thu, 21 Aug 2014 20:24:08 +0900 Subject: [PATCH] Fix prevent issue and accessing null pointer Change-Id: Ie5ea161542e0ea6acddc77dd502bca4e091c27d9 --- src/tbm_bufmgr.c | 7 +++++-- src/tbm_surface.c | 2 +- src/tbm_surface_internal.c | 4 ++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/tbm_bufmgr.c b/src/tbm_bufmgr.c index 5f91a4e..f7d8198 100755 --- a/src/tbm_bufmgr.c +++ b/src/tbm_bufmgr.c @@ -790,9 +790,12 @@ static int _tbm_load_module (tbm_bufmgr bufmgr, int fd) if (!ret && strstr (namelist[n]->d_name, PREFIX_LIB)) { p = strstr (namelist[n]->d_name, SUFFIX_LIB); - if (!strcmp (p, SUFFIX_LIB)) + if (p != NULL) { - ret = _tbm_bufmgr_load_module (bufmgr, fd, namelist[n]->d_name); + if (!strcmp (p, SUFFIX_LIB)) + { + ret = _tbm_bufmgr_load_module (bufmgr, fd, namelist[n]->d_name); + } } } free(namelist[n]); diff --git a/src/tbm_surface.c b/src/tbm_surface.c index 546fe28..fb9c710 100755 --- a/src/tbm_surface.c +++ b/src/tbm_surface.c @@ -196,7 +196,7 @@ tbm_surface_get_height (tbm_surface_h surface) tbm_format tbm_surface_get_format (tbm_surface_h surface) { - if (surface) + if (!surface) { #ifdef HAVE_CAPI_0_1_1 set_last_result (TBM_SURFACE_ERROR_INVALID_PARAMETER); diff --git a/src/tbm_surface_internal.c b/src/tbm_surface_internal.c index 6a993b6..fef8118 100755 --- a/src/tbm_surface_internal.c +++ b/src/tbm_surface_internal.c @@ -304,6 +304,7 @@ tbm_surface_internal_create_with_flags (int width, int height, int format, int f { _deinit_surface_bufmgr (); LIST_DELINIT (&g_surface_list); + return NULL; } } @@ -487,7 +488,10 @@ tbm_surface_internal_get_plane_data (tbm_surface_h surface, int plane_idx, uint3 ret = mgr->backend->surface_get_plane_data (surf, surf->info.width, surf->info.height, surf->info.format, plane_idx, size, offset, pitch); if (!ret) + { + pthread_mutex_unlock (&mgr->lock); return 0; + } pthread_mutex_unlock (&mgr->lock); -- 2.7.4