From 5de69c6bb41fd82f8cd5e7f29c289bb68017b0d4 Mon Sep 17 00:00:00 2001 From: discomfitor Date: Fri, 21 Oct 2011 04:32:27 +0000 Subject: [PATCH] strndup??? who would do such a thing! 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 | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/lib/elm_cnp_helper.c b/src/lib/elm_cnp_helper.c index 2f7e941..5e9b10b 100644 --- a/src/lib/elm_cnp_helper.c +++ b/src/lib/elm_cnp_helper.c @@ -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; -- 2.7.4