strndup??? who would do such a thing!
authordiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 21 Oct 2011 04:32:27 +0000 (04:32 +0000)
committerdiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 21 Oct 2011 04:32:27 +0000 (04:32 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@64230 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/elm_cnp_helper.c

index 2f7e941..5e9b10b 100644 (file)
@@ -598,7 +598,11 @@ targets_converter(char *target __UNUSED__, void *data, int size, void **data_ret
 
    if (size != sizeof(int))
      {
-        if (data_ret) *data_ret = strndup(data, size);
+        if (data_ret)
+          {
+             memcpy(*data_ret, data, size);
+             ((char**)(data_ret))[0][size] = 0;
+          }
         if (size_ret) *size_ret = size;
         return EINA_TRUE;
      }
@@ -807,7 +811,9 @@ notify_handler_uri(Cnp_Selection *sel, Ecore_X_Event_Selection_Notify *notify)
      }
    else
      {
-        stripstr = p = strndup((char *)data->data, data->length);
+        memcpy(stripstr, data->data, data->length);
+        stripstr[data->length] = 0;
+        p = stripstr;
      }
 
    if (!p)
@@ -980,7 +986,11 @@ text_converter(char *target __UNUSED__, void *data, int size, void **data_ret, i
    cnp_debug("text converter\n");
    if (size != sizeof(int))
      {
-        if (data_ret) *data_ret = strndup(data, size);
+        if (data_ret)
+          {
+             memcpy(*data_ret, data, size);
+             ((char**)(data_ret))[0][size] = 0;
+          }
         if (size_ret) *size_ret = size;
         return EINA_TRUE;
      }
@@ -1022,7 +1032,11 @@ general_converter(char *target __UNUSED__, void *data, int size, void **data_ret
      }
    else if (size)
      {
-        if (data_ret) *data_ret = strndup(data, size);
+        if (data_ret)
+          {
+             memcpy(*data_ret, data, size);
+             ((char**)(data_ret))[0][size] = 0;
+          }
         if (size_ret) *size_ret = size;
      }
    return EINA_TRUE;