{
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;
_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;
}
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;
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
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;
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;