diff --git a/legacy/elementary/src/lib/elm_cnp.c b/legacy/elementary/src/lib/elm_cnp.c index 6c9728a7b5..ab1a7fe74e 100644 --- a/legacy/elementary/src/lib/elm_cnp.c +++ b/legacy/elementary/src/lib/elm_cnp.c @@ -775,8 +775,12 @@ notify_handler_text(Cnp_Selection *sel, Ecore_X_Event_Selection_Notify *notify) { Ecore_X_Selection_Data *data; char *str; + char *mkupstr; data = notify->data; + str = malloc(sizeof(char) * (data->length + 1)); + strncpy(str, (char *)data->data, data->length); + str[data->length] = '\0'; if (sel->datacb) { @@ -791,10 +795,11 @@ notify_handler_text(Cnp_Selection *sel, Ecore_X_Event_Selection_Notify *notify) } cnp_debug("Notify handler text %d %d %p\n", data->format,data->length, data->data); - str = _elm_util_text_to_mkup((const char *) data->data); + mkupstr = _elm_util_text_to_mkup((const char *) str); cnp_debug("String is %s (from %s)\n", str, data->data); - _elm_entry_entry_paste(sel->requestwidget, str); + _elm_entry_entry_paste(sel->requestwidget, mkupstr); free(str); + free(mkupstr); return 0; }