prevent copying error over TDM_NAME_LEN(64) length string
[platform/core/uifw/libtdm.git] / src / tdm_output.c
index 16b7bf1..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;
@@ -2054,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;