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

src/lib/efreet_desktop.c

index 2cb0b5f..255f795 100644 (file)
@@ -1930,7 +1930,11 @@ efreet_desktop_command_file_uri_process(const char *uri)
     {
         char *tmp, *p;
         char hostname[PATH_MAX];
-        tmp = strdup(uri + 7);
+        size_t len2;
+
+        len2 = strlen(uri + 7) + 1;
+        tmp = alloca(len2);
+        memcpy(tmp, uri + 7, len2);
         p = strchr(tmp, '/');
         if (p)
         {
@@ -1946,7 +1950,6 @@ efreet_desktop_command_file_uri_process(const char *uri)
                     path = uri + strlen("file://") + strlen(hostname);
             }
         }
-        free(tmp);
     }
 
     /* uri:///foo/bar => absolute path /foo/bar on local machine */