cedric pushed a commit to branch master.

commit 267b9e4c293976d3966c75f448f85cee5f4be1b2
Author: Cedric Bail <[email protected]>
Date:   Thu Jun 27 12:25:03 2013 +0900

    efreet: always sanitize path.
---
 src/lib/efreet/efreet_icon.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/src/lib/efreet/efreet_icon.c b/src/lib/efreet/efreet_icon.c
index 229c752..b121ae6 100644
--- a/src/lib/efreet/efreet_icon.c
+++ b/src/lib/efreet/efreet_icon.c
@@ -99,7 +99,9 @@ efreet_icon_deprecated_user_dir_get(void)
     tmp = alloca(len);
     snprintf(tmp, len, "%s/.icons", user);
 
+    tmp = eina_file_path_sanitize(tmp);
     efreet_icon_deprecated_user_dir = eina_stringshare_add_length(tmp, len - 
1);
+    free(tmp);
 
     return efreet_icon_deprecated_user_dir;
 }
@@ -118,7 +120,9 @@ efreet_icon_user_dir_get(void)
     tmp = alloca(len);
     snprintf(tmp, len, "%s/icons", user);
 
+    tmp = eina_file_path_sanitize(tmp);
     efreet_icon_user_dir = eina_stringshare_add_length(tmp, len - 1);
+    free(tmp);
 
     return efreet_icon_user_dir;
 }
@@ -682,9 +686,11 @@ efreet_icon_lookup_path_path(Efreet_Cache_Icon_Element 
*elem, const char *path)
 {
     Eina_List *ll;
     const char *ext, *pp;
+    const char *r = NULL;
     unsigned int i;
     int len;
 
+    path = eina_file_path_sanitize(path);
     len = strlen(path);
 
     for (i = 0; i < elem->paths_count; ++i)
@@ -695,10 +701,15 @@ efreet_icon_lookup_path_path(Efreet_Cache_Icon_Element 
*elem, const char *path)
 
         EINA_LIST_FOREACH(efreet_icon_extensions, ll, ext)
             if (!strcmp(pp, ext))
-                return elem->paths[i];
+           {
+               r = elem->paths[i];
+               break;
+           }
     }
 
-    return NULL;
+    free((void*) path);
+
+    return r;
 }
 
 static const char *
@@ -767,9 +778,11 @@ 
efreet_icon_fallback_lookup_path_path(Efreet_Cache_Fallback_Icon *icon, const ch
 {
     Eina_List *ll;
     const char *ext, *pp;
+    const char *r = NULL;
     unsigned int i;
     int len;
 
+    path = eina_file_path_sanitize(path);
     len = strlen(path);
 
     for (i = 0; i < icon->icons_count; ++i)
@@ -781,10 +794,15 @@ 
efreet_icon_fallback_lookup_path_path(Efreet_Cache_Fallback_Icon *icon, const ch
 
         EINA_LIST_FOREACH(efreet_icon_extensions, ll, ext)
             if (!strcmp(pp, ext))
-                return icon->icons[i];
+           {
+               r = icon->icons[i];
+               break;
+           }
     }
 
-    return NULL;
+    free((void*) path);
+
+    return r;
 }
 
 static void

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev

Reply via email to