raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=28d06f9a5fa2b639579ac43b590df485e0cfd650

commit 28d06f9a5fa2b639579ac43b590df485e0cfd650
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Fri Apr 13 02:42:00 2018 +0900

    efl selection - fix another binary buffer treates as string bug
    
    as per subject.
    
    @fix
---
 src/lib/elementary/efl_selection_manager.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/lib/elementary/efl_selection_manager.c 
b/src/lib/elementary/efl_selection_manager.c
index 5b92f612ff..0a003ba4d4 100644
--- a/src/lib/elementary/efl_selection_manager.c
+++ b/src/lib/elementary/efl_selection_manager.c
@@ -1166,9 +1166,17 @@ _x11_text_converter(char *target, void *data, int size 
EINA_UNUSED, void **data_
    if ((sel->format & EFL_SELECTION_FORMAT_MARKUP) ||
        (sel->format & EFL_SELECTION_FORMAT_HTML))
      {
-        *data_ret = _elm_util_mkup_to_text(sel->data.mem);
-        if (size_ret && *data_ret) *size_ret = strlen(*data_ret);
-        sel_debug("markup or html: %s", (const char *)*data_ret);
+        char *tmp = malloc(size + 1);
+        if (tmp)
+          {
+             strncpy(tmp, data, size);
+             tmp[size] = 0;
+             *data_ret = _elm_util_mkup_to_text(tmp);
+             if (size_ret && *data_ret) *size_ret = strlen(*data_ret);
+             free(tmp);
+             sel_debug("markup or html: %s", (const char *)*data_ret);
+          }
+        else return EINA_FALSE;
      }
    else if (sel->format & EFL_SELECTION_FORMAT_TEXT)
      {

-- 


Reply via email to