hwc: check the parameters 82/201682/1
authorSooChan Lim <sc1.lim@samsung.com>
Tue, 19 Mar 2019 01:43:05 +0000 (10:43 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Tue, 19 Mar 2019 01:43:05 +0000 (10:43 +0900)
Change-Id: Ie957bf506aeb3e272a616ad2705d4fed81321c44

src/tdm_sprd.h
src/tdm_sprd_hwc.c
src/tdm_sprd_hwc_window.c

index 17e0f3c..efbbd12 100644 (file)
@@ -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
 
index 76d69af..02616f5 100644 (file)
@@ -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);
 
index 2ff0731..8bc7a94 100644 (file)
@@ -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);