Package version up to 2.7.1
[platform/core/uifw/libtdm.git] / src / tdm_output.c
index 3d6686b..e043569 100644 (file)
@@ -1119,7 +1119,7 @@ _tdm_voutput_cb_commit(tdm_voutput *voutput_backend, unsigned int sequence,
 {
        tdm_private_voutput_commit_handler *voutput_commit_handler = NULL;
        tdm_private_module *private_module;
-       tdm_private_voutput *private_voutput = NULL, *v;
+       tdm_private_voutput *private_voutput = NULL, *v = NULL;
        tdm_private_output *private_output;
        tdm_thread_cb_voutput_commit voutput_commit;
        tdm_error ret;
@@ -1983,12 +1983,11 @@ tdm_voutput_create(tdm_display *dpy, const char *name, tdm_error *error)
 
        _pthread_mutex_lock(&private_display->lock);
 
-       if (error)
-               *error = TDM_ERROR_NONE;
+       if (error) *error = TDM_ERROR_NONE;
 
        private_voutput = calloc(1, sizeof(tdm_private_voutput));
        if (!private_voutput) {
-               *error = TDM_ERROR_OUT_OF_MEMORY;
+               if (error) *error = TDM_ERROR_OUT_OF_MEMORY;
                _pthread_mutex_unlock(&private_display->lock);
                return NULL;
        }
@@ -2003,7 +2002,7 @@ tdm_voutput_create(tdm_display *dpy, const char *name, tdm_error *error)
        if (voutput_backend == NULL || ret != TDM_ERROR_NONE) {
                TDM_ERR("voutput_create fail");
                free(private_voutput);
-               *error = ret;
+               if (error) *error = ret;
                private_display->current_module = current_module;
                _pthread_mutex_unlock(&private_display->lock);
                return NULL;
@@ -2017,7 +2016,7 @@ tdm_voutput_create(tdm_display *dpy, const char *name, tdm_error *error)
        if (output_backend == NULL || ret != TDM_ERROR_NONE) {
                TDM_ERR("voutput_get_output fail");
                free(private_voutput);
-               *error = ret;
+               if (error) *error = ret;
                if (func_voutput->voutput_destroy)
                        func_voutput->voutput_destroy(voutput_backend);
                else
@@ -2035,7 +2034,7 @@ tdm_voutput_create(tdm_display *dpy, const char *name, tdm_error *error)
                        func_voutput->voutput_destroy(voutput_backend);
                else
                        TDM_ERR("no destroy function");
-               *error = ret;
+               if (error) *error = ret;
                private_display->current_module = current_module;
                _pthread_mutex_unlock(&private_display->lock);
                return NULL;
@@ -2055,9 +2054,12 @@ tdm_voutput_create(tdm_display *dpy, const char *name, tdm_error *error)
                        func_voutput->voutput_destroy(voutput_backend);
                else
                        TDM_ERR("no destroy function");
+               private_voutput = NULL;
        } else {
-               strncpy(private_voutput->name, name, TDM_NAME_LEN);
-               strncpy(private_output->name, name, TDM_NAME_LEN);
+               strncpy(private_voutput->name, name, TDM_NAME_LEN - 1);
+               private_voutput->name[TDM_NAME_LEN - 1] = '\0';
+               strncpy(private_output->name, name, TDM_NAME_LEN - 1);
+               private_output->name[TDM_NAME_LEN - 1] = '\0';
 
                private_voutput->private_output = private_output;
                private_output->private_voutput = private_voutput;