summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSooChan Lim <sc1.lim@samsung.com>2019-03-19 10:43:05 +0900
committerSooChan Lim <sc1.lim@samsung.com>2019-03-19 10:43:05 +0900
commit75a9066a60a11470e2be1a2be24c1935b8b6c949 (patch)
treecf9ebee455670c3136b4f456db7bc48d2e92760c
parent68bee81d56800176e26e28abc98d0d8b9b1a8f51 (diff)
downloadlibtdm-sprd-75a9066a60a11470e2be1a2be24c1935b8b6c949.tar.gz
libtdm-sprd-75a9066a60a11470e2be1a2be24c1935b8b6c949.tar.bz2
libtdm-sprd-75a9066a60a11470e2be1a2be24c1935b8b6c949.zip
hwc: check the parameters
Change-Id: Ie957bf506aeb3e272a616ad2705d4fed81321c44
-rw-r--r--src/tdm_sprd.h8
-rw-r--r--src/tdm_sprd_hwc.c10
-rw-r--r--src/tdm_sprd_hwc_window.c14
3 files changed, 21 insertions, 11 deletions
diff --git a/src/tdm_sprd.h b/src/tdm_sprd.h
index 17e0f3c..efbbd12 100644
--- a/src/tdm_sprd.h
+++ b/src/tdm_sprd.h
@@ -132,6 +132,14 @@ tdm_backend_data* sprd_output_get_sprd_data(tdm_output *output);
return val;\
} \
}
+
+#define RETURN_IF_FAIL(cond) {\
+ if (!(cond)) {\
+ TDM_ERR("'%s' failed", #cond);\
+ return;\
+ } \
+}
+
#define LAYER_COUNT_PER_OUTPUT 2
#define NOP
diff --git a/src/tdm_sprd_hwc.c b/src/tdm_sprd_hwc.c
index 76d69af..02616f5 100644
--- a/src/tdm_sprd_hwc.c
+++ b/src/tdm_sprd_hwc.c
@@ -329,6 +329,13 @@ _sprd_hwc_create_window(tdm_sprd_hwc_data *hwc_data, tdm_hwc_window_info *info,
if (error)
*error = TDM_ERROR_NONE;
+ if (!hwc_data) {
+ TDM_ERR("invalid params");
+ if (error)
+ *error = TDM_ERROR_INVALID_PARAMETER;
+ return NULL;
+ }
+
hwc_window_data = calloc(1, sizeof(tdm_sprd_hwc_window_data));
if (!hwc_window_data) {
TDM_ERR("alloc failed");
@@ -347,12 +354,11 @@ _sprd_hwc_create_window(tdm_sprd_hwc_data *hwc_data, tdm_hwc_window_info *info,
return hwc_window_data;
}
-
tdm_hwc_window *
sprd_hwc_create_window(tdm_hwc *hwc, tdm_error *error)
{
- tdm_sprd_hwc_window_data *hwc_window_data = NULL;
tdm_sprd_hwc_data *hwc_data = hwc;
+ tdm_sprd_hwc_window_data *hwc_window_data = NULL;
RETURN_VAL_IF_FAIL(hwc_data, NULL);
diff --git a/src/tdm_sprd_hwc_window.c b/src/tdm_sprd_hwc_window.c
index 2ff0731..8bc7a94 100644
--- a/src/tdm_sprd_hwc_window.c
+++ b/src/tdm_sprd_hwc_window.c
@@ -9,8 +9,7 @@ sprd_hwc_window_destroy(tdm_hwc_window *hwc_window)
{
tdm_sprd_hwc_window_data *hwc_window_data = hwc_window;
- if (!hwc_window_data)
- return;
+ RETURN_IF_FAIL(hwc_window_data != NULL);
LIST_DEL(&hwc_window_data->link);
@@ -84,9 +83,10 @@ tdm_error
sprd_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info)
{
tdm_sprd_hwc_window_data *hwc_window_data = hwc_window;
- tdm_sprd_hwc_data *hwc_data = hwc_window_data->hwc_data;
+ tdm_sprd_hwc_data *hwc_data;
RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
+ hwc_data = hwc_window_data->hwc_data;
RETURN_VAL_IF_FAIL(hwc_data != NULL, TDM_ERROR_INVALID_PARAMETER);
RETURN_VAL_IF_FAIL(info != NULL, TDM_ERROR_INVALID_PARAMETER);
@@ -141,9 +141,7 @@ sprd_hwc_window_set_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_va
tdm_error
sprd_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints)
{
- tdm_sprd_hwc_window_data *hwc_window_data = NULL;
-
- hwc_window_data = (tdm_sprd_hwc_window_data *)hwc_window;
+ tdm_sprd_hwc_window_data *hwc_window_data = hwc_window;
RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);
RETURN_VAL_IF_FAIL(constraints != NULL, TDM_ERROR_INVALID_PARAMETER);
@@ -156,9 +154,7 @@ sprd_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints)
tdm_error
sprd_hwc_window_set_name(tdm_hwc_window *hwc_window, const char *name)
{
- tdm_sprd_hwc_window_data *hwc_window_data = NULL;
-
- hwc_window_data = (tdm_sprd_hwc_window_data *)hwc_window;
+ tdm_sprd_hwc_window_data *hwc_window_data = hwc_window;
RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER);