efreet: remove strdup, use alloca
authorenglebass <englebass@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 1 Apr 2010 19:32:10 +0000 (19:32 +0000)
committerenglebass <englebass@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 1 Apr 2010 19:32:10 +0000 (19:32 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/efreet@47661 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/efreet_desktop.c

index 282130b..2cb0b5f 100644 (file)
@@ -993,10 +993,13 @@ efreet_desktop_string_list_parse(const char *string)
     Eina_List *list = NULL;
     char *tmp;
     char *s, *p;
+    size_t len;
 
     if (!string) return NULL;
 
-    tmp = strdup(string);
+    len = strlen(string) + 1;
+    tmp = alloca(len);
+    memcpy(tmp, string, len);
     s = tmp;
 
     while ((p = strchr(s, ';')))
@@ -1016,8 +1019,6 @@ efreet_desktop_string_list_parse(const char *string)
         list = eina_list_append(list, (void *)eina_stringshare_add(s));
     }
 
-    free(tmp);
-
     return list;
 }