raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9d6ac24a9c09d90a16435faee97192da21fc7f87

commit 9d6ac24a9c09d90a16435faee97192da21fc7f87
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Thu Apr 12 23:59:03 2018 +0900

    efl selection manager - fix anoyther binary buffer treated as string bug
    
    yet another "binary buffer" (pointer + size) streated as a string with
    strdup + strlen which is oh so wrong. this fixes up some cnp in
    wayland with garbage at the end of strings
    
    @fix
---
 src/lib/elementary/efl_selection_manager.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/lib/elementary/efl_selection_manager.c 
b/src/lib/elementary/efl_selection_manager.c
index 5bdf7ff6ec..52edb97fd8 100644
--- a/src/lib/elementary/efl_selection_manager.c
+++ b/src/lib/elementary/efl_selection_manager.c
@@ -2384,10 +2384,15 @@ _wl_general_converter(char *target, 
Sel_Manager_Selection *sel, void *data, int
      }
    else
      {
-        if (data)
+        if ((data) && (size > 0))
           {
-             if (data_ret) *data_ret = strdup(data);
-             if (size_ret) *size_ret = strlen(data);
+             char *tmp = malloc(size);
+             if (tmp)
+               {
+                  memcpy(tmp, data, size);
+                  if (data_ret) *data_ret = tmp;
+                  if (size_ret) *size_ret = size;
+               }
           }
         else
           {

-- 


Reply via email to