tdm_server: fix stack buffer overflow
[platform/core/uifw/libtdm.git] / src / tdm_hwc.c
index bd7428c..0589bc1 100644 (file)
@@ -240,8 +240,7 @@ tdm_hwc_get_video_available_properties(tdm_hwc *hwc, const tdm_prop **props, int
 }
 
 EXTERN tdm_error
-tdm_hwc_get_video_capability(tdm_hwc *hwc,
-                                                       tdm_hwc_video_capability *video_capability)
+tdm_hwc_get_capabilities(tdm_hwc *hwc, tdm_hwc_capability *capabilities)
 {
        tdm_private_module *private_module;
        tdm_func_hwc *func_hwc;
@@ -253,14 +252,13 @@ tdm_hwc_get_video_capability(tdm_hwc *hwc,
        private_module = private_output->private_module;
        func_hwc = &private_module->func_hwc;
 
-       if (!func_hwc->hwc_get_video_capability) {
+       if (!func_hwc->hwc_get_capabilities) {
                _pthread_mutex_unlock(&private_display->lock);
                TDM_WRN("not implemented!!");
                return TDM_ERROR_NOT_IMPLEMENTED;
        }
 
-       ret = func_hwc->hwc_get_video_capability(private_hwc->hwc_backend,
-                                                                                       video_capability);
+       ret = func_hwc->hwc_get_capabilities(private_hwc->hwc_backend, capabilities);
 
        _pthread_mutex_unlock(&private_display->lock);
 
@@ -510,13 +508,6 @@ tdm_hwc_accept_validation(tdm_hwc *hwc)
        return ret;
 }
 
-/* temporary prototype to avoid build break */
-tdm_error
-tdm_hwc_accept_changes(tdm_hwc *hwc)
-{
-   return tdm_hwc_accept_validation(hwc);
-}
-
 EXTERN tdm_error
 tdm_hwc_commit(tdm_hwc *hwc, int sync, tdm_hwc_commit_handler func, void *user_data)
 {
@@ -614,4 +605,60 @@ commit_failed:
 
        return ret;
        /* LCOV_EXCL_STOP */
-}
\ No newline at end of file
+}
+
+tdm_error
+tdm_hwc_set_property(tdm_hwc *hwc, uint32_t id, tdm_value value)
+{
+       tdm_private_module *private_module;
+       tdm_func_hwc *func_hwc = NULL;
+
+       HWC_FUNC_ENTRY();
+
+       _pthread_mutex_lock(&private_display->lock);
+
+       private_module = private_hwc->private_module;
+       func_hwc = &private_module->func_hwc;
+
+       if (!func_hwc->hwc_set_property) {
+               /* LCOV_EXCL_START */
+               _pthread_mutex_unlock(&private_display->lock);
+               TDM_WRN("not implemented!!");
+               return TDM_ERROR_NOT_IMPLEMENTED;
+               /* LCOV_EXCL_STOP */
+       }
+
+       ret = func_hwc->hwc_set_property(private_hwc->hwc_backend, id, value);
+
+       _pthread_mutex_unlock(&private_display->lock);
+
+       return ret;
+}
+
+tdm_error
+tdm_hwc_get_property(tdm_hwc *hwc, uint32_t id, tdm_value *value)
+{
+       tdm_private_module *private_module;
+       tdm_func_hwc *func_hwc = NULL;
+
+       HWC_FUNC_ENTRY();
+
+       _pthread_mutex_lock(&private_display->lock);
+
+       private_module = private_hwc->private_module;
+       func_hwc = &private_module->func_hwc;
+
+       if (!func_hwc->hwc_get_property) {
+               /* LCOV_EXCL_START */
+               _pthread_mutex_unlock(&private_display->lock);
+               TDM_WRN("not implemented!!");
+               return TDM_ERROR_NOT_IMPLEMENTED;
+               /* LCOV_EXCL_STOP */
+       }
+
+       ret = func_hwc->hwc_get_property(private_hwc->hwc_backend, id, value);
+
+       _pthread_mutex_unlock(&private_display->lock);
+
+       return ret;
+}