Index: src/lib/efreet_desktop_command.c
===================================================================
--- src/lib/efreet_desktop_command.c	(리비전 71338)
+++ src/lib/efreet_desktop_command.c	(작업 사본)
@@ -148,12 +148,13 @@ efreet_desktop_command_get(Efreet_Deskto
 EAPI Eina_List *
 efreet_desktop_command_local_get(Efreet_Desktop *desktop, Eina_List *files)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop->exec, NULL);
+
     Efreet_Desktop_Command *command;
     char *file;
     Eina_List *execs, *l;
 
-    if (!desktop || !desktop->exec) return NULL;
-
     command = NEW(Efreet_Desktop_Command, 1);
     if (!command) return 0;
 
@@ -190,13 +191,15 @@ efreet_desktop_command_progress_get(Efre
                                     Efreet_Desktop_Progress_Cb cb_progress,
                                     void *data)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop->exec, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(cb_command, NULL);
+
     Efreet_Desktop_Command *command;
     Eina_List *l;
     char *file;
     void *ret = NULL;
 
-    if (!desktop || !cb_command || !desktop->exec) return NULL;
-
     command = NEW(Efreet_Desktop_Command, 1);
     if (!command) return NULL;
 
@@ -283,7 +286,7 @@ efreet_desktop_command_flags_get(Efreet_
 
         p = strchr(p, '%');
     }
-#ifdef SLOPPY_SPEC   
+#ifdef SLOPPY_SPEC
     /* NON-SPEC!!! this is to work around LOTS of 'broken' .desktop files that
      * do not specify %U/%u, %F/F etc. etc. at all. just a command. this is
      * unlikely to be fixed in distributions etc. in the long run as gnome/kde
@@ -310,7 +313,7 @@ efreet_desktop_command_execs_process(Efr
     char *exec;
     int num;
     void *ret = NULL;
-   
+
     num = eina_list_count(execs);
     EINA_LIST_FOREACH(execs, l, exec)
     {
@@ -429,7 +432,7 @@ efreet_desktop_command_build(Efreet_Desk
             p++;
         }
 
-#ifdef SLOPPY_SPEC       
+#ifdef SLOPPY_SPEC
         /* NON-SPEC!!! this is to work around LOTS of 'broken' .desktop files that
          * do not specify %U/%u, %F/F etc. etc. at all. just a command. this is
          * unlikely to be fixed in distributions etc. in the long run as gnome/kde
Index: src/lib/efreet_desktop.c
===================================================================
--- src/lib/efreet_desktop.c	(리비전 71338)
+++ src/lib/efreet_desktop.c	(작업 사본)
@@ -160,6 +160,8 @@ efreet_desktop_shutdown(void)
 EAPI Efreet_Desktop *
 efreet_desktop_get(const char *file)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
+
     Efreet_Desktop *desktop;
 
     desktop = efreet_desktop_new(file);
@@ -187,7 +189,7 @@ efreet_desktop_get(const char *file)
 EAPI int
 efreet_desktop_ref(Efreet_Desktop *desktop)
 {
-    if (!desktop) return 0;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, 0);
     desktop->ref++;
     return desktop->ref;
 }
@@ -195,6 +197,7 @@ efreet_desktop_ref(Efreet_Desktop *deskt
 EAPI Efreet_Desktop *
 efreet_desktop_empty_new(const char *file)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
     Efreet_Desktop *desktop;
 
     desktop = NEW(Efreet_Desktop, 1);
@@ -211,9 +214,9 @@ efreet_desktop_empty_new(const char *fil
 EAPI Efreet_Desktop *
 efreet_desktop_new(const char *file)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
     Efreet_Desktop *desktop = NULL;
 
-    if (!file) return NULL;
     desktop = efreet_cache_desktop_find(file);
     if (desktop)
     {
@@ -232,10 +235,11 @@ efreet_desktop_new(const char *file)
 EAPI Efreet_Desktop *
 efreet_desktop_uncached_new(const char *file)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
+
     Efreet_Desktop *desktop = NULL;
     char rp[PATH_MAX];
 
-    if (!file) return NULL;
     if (!realpath(file, rp)) return NULL;
     if (!ecore_file_exists(rp)) return NULL;
 
@@ -255,6 +259,8 @@ efreet_desktop_uncached_new(const char *
 EAPI int
 efreet_desktop_save(Efreet_Desktop *desktop)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, 0);
+
     Efreet_Desktop_Type_Info *info;
     Efreet_Ini *ini;
     int ok = 1;
@@ -309,6 +315,9 @@ efreet_desktop_save(Efreet_Desktop *desk
 EAPI int
 efreet_desktop_save_as(Efreet_Desktop *desktop, const char *file)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0);
+
     /* If we save data from eet as new, we will be in trouble */
     if (desktop->eet) return 0;
 
@@ -320,7 +329,7 @@ efreet_desktop_save_as(Efreet_Desktop *d
 EAPI void
 efreet_desktop_free(Efreet_Desktop *desktop)
 {
-    if (!desktop) return;
+    EINA_SAFETY_ON_NULL_RETURN(desktop);
 
     desktop->ref--;
     if (desktop->ref > 0) return;
@@ -381,14 +390,15 @@ efreet_desktop_environment_get(void)
 EAPI unsigned int
 efreet_desktop_category_count_get(Efreet_Desktop *desktop)
 {
-    if (!desktop || !desktop->categories) return 0;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop->categories, 0);
     return eina_list_count(desktop->categories);
 }
 
 EAPI void
 efreet_desktop_category_add(Efreet_Desktop *desktop, const char *category)
 {
-    if (!desktop) return;
+    EINA_SAFETY_ON_NULL_RETURN(desktop);
 
     if (eina_list_search_unsorted(desktop->categories,
                                   EINA_COMPARE_CB(strcmp), category)) return;
@@ -400,9 +410,10 @@ efreet_desktop_category_add(Efreet_Deskt
 EAPI int
 efreet_desktop_category_del(Efreet_Desktop *desktop, const char *category)
 {
-    char *found = NULL;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop->categories, 0);
 
-    if (!desktop || !desktop->categories) return 0;
+    char *found = NULL;
 
     if ((found = eina_list_search_unsorted(desktop->categories,
                                            EINA_COMPARE_CB(strcmp), category)))
@@ -453,8 +464,8 @@ efreet_desktop_type_alias(int from_type,
 EAPI Eina_Bool
 efreet_desktop_x_field_set(Efreet_Desktop *desktop, const char *key, const char *data)
 {
-    if (!desktop || strncmp(key, "X-", 2))
-        return EINA_FALSE;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, EINA_FALSE);
+    EINA_SAFETY_ON_TRUE_RETURN_VAL(strncmp(key, "X-", 2), EINA_FALSE);
 
     if (!desktop->x)
         desktop->x = eina_hash_string_superfast_new(EINA_FREE_CB(eina_stringshare_del));
@@ -468,13 +479,11 @@ efreet_desktop_x_field_set(Efreet_Deskto
 EAPI const char *
 efreet_desktop_x_field_get(Efreet_Desktop *desktop, const char *key)
 {
-    const char *ret;
-
-    if (!desktop || strncmp(key, "X-", 2))
-        return NULL;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop->x, NULL);
+    EINA_SAFETY_ON_TRUE_RETURN_VAL(strncmp(key, "X-", 2), NULL);
 
-    if (!desktop->x)
-        return NULL;
+    const char *ret;
 
     ret = eina_hash_find(desktop->x, key);
     if (!ret)
@@ -486,11 +495,9 @@ efreet_desktop_x_field_get(Efreet_Deskto
 EAPI Eina_Bool
 efreet_desktop_x_field_del(Efreet_Desktop *desktop, const char *key)
 {
-    if (!desktop || strncmp(key, "X-", 2))
-        return EINA_FALSE;
-
-    if (!desktop->x)
-        return EINA_FALSE;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, EINA_FALSE);
+    EINA_SAFETY_ON_TRUE_RETURN_VAL(strncmp(key, "X-", 2), EINA_FALSE);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop->x, EINA_FALSE);
 
     return eina_hash_del_by_key(desktop->x, key);
 }
@@ -498,19 +505,20 @@ efreet_desktop_x_field_del(Efreet_Deskto
 EAPI void *
 efreet_desktop_type_data_get(Efreet_Desktop *desktop)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, NULL);
     return desktop->type_data;
 }
 
 EAPI Eina_List *
 efreet_desktop_string_list_parse(const char *string)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(string, NULL);
+
     Eina_List *list = NULL;
     char *tmp;
     char *s, *p;
     size_t len;
 
-    if (!string) return NULL;
-
     len = strlen(string) + 1;
     tmp = alloca(len);
     memcpy(tmp, string, len);
Index: src/lib/efreet_ini.c
===================================================================
--- src/lib/efreet_ini.c	(리비전 71338)
+++ src/lib/efreet_ini.c	(작업 사본)
@@ -122,7 +122,7 @@ efreet_ini_parse(const char *file)
     left = file_stat.st_size;
     /* let's make mmap safe and just get 0 pages for IO erro */
     eina_mmap_safety_enabled_set(EINA_TRUE);
-   
+
     buffer = mmap(NULL, left, PROT_READ, MAP_SHARED, fileno(f), 0);
     if (buffer == MAP_FAILED)
     {
@@ -287,7 +287,7 @@ error:
 EAPI void
 efreet_ini_free(Efreet_Ini *ini)
 {
-    if (!ini) return;
+    EINA_SAFETY_ON_NULL_RETURN(ini);
 
     IF_FREE_HASH(ini->data);
     FREE(ini);
@@ -296,9 +296,12 @@ efreet_ini_free(Efreet_Ini *ini)
 EAPI int
 efreet_ini_save(Efreet_Ini *ini, const char *file)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini->data, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0);
+
     char *dir;
     FILE *f;
-    if (!ini || !ini->data) return 0;
 
     dir = ecore_file_dir_get(file);
     if (!ecore_file_mkpath(dir))
@@ -318,7 +321,9 @@ efreet_ini_save(Efreet_Ini *ini, const c
 EAPI int
 efreet_ini_section_set(Efreet_Ini *ini, const char *section)
 {
-    if (!ini || !ini->data || !section) return 0;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini->data, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(section, 0);
 
     ini->section = eina_hash_find(ini->data, section);
     return (ini->section ? 1 : 0);
@@ -327,9 +332,10 @@ efreet_ini_section_set(Efreet_Ini *ini,
 EAPI void
 efreet_ini_section_add(Efreet_Ini *ini, const char *section)
 {
-    Eina_Hash *hash;
+    EINA_SAFETY_ON_NULL_RETURN(ini);
+    EINA_SAFETY_ON_NULL_RETURN(section);
 
-    if (!ini || !section) return;
+    Eina_Hash *hash;
 
     if (!ini->data)
         ini->data = eina_hash_string_small_new(EINA_FREE_CB(eina_hash_free));
@@ -342,7 +348,9 @@ efreet_ini_section_add(Efreet_Ini *ini,
 EAPI const char *
 efreet_ini_string_get(Efreet_Ini *ini, const char *key)
 {
-    if (!ini || !key || !ini->section) return NULL;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini->section, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(key, NULL);
 
     return eina_hash_find(ini->section, key);
 }
@@ -350,7 +358,9 @@ efreet_ini_string_get(Efreet_Ini *ini, c
 EAPI void
 efreet_ini_string_set(Efreet_Ini *ini, const char *key, const char *value)
 {
-    if (!ini || !key || !ini->section) return;
+    EINA_SAFETY_ON_NULL_RETURN(ini);
+    EINA_SAFETY_ON_NULL_RETURN(ini->section);
+    EINA_SAFETY_ON_NULL_RETURN(key);
 
     eina_hash_del_by_key(ini->section, key);
     eina_hash_add(ini->section, key, eina_stringshare_add(value));
@@ -359,9 +369,11 @@ efreet_ini_string_set(Efreet_Ini *ini, c
 EAPI int
 efreet_ini_int_get(Efreet_Ini *ini, const char *key)
 {
-    const char *str;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini, -1);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini->section, -1);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(key, -1);
 
-    if (!ini || !key || !ini->section) return -1;
+    const char *str;
 
     str = efreet_ini_string_get(ini, key);
     if (str) return atoi(str);
@@ -372,9 +384,11 @@ efreet_ini_int_get(Efreet_Ini *ini, cons
 EAPI void
 efreet_ini_int_set(Efreet_Ini *ini, const char *key, int value)
 {
-    char str[12];
+    EINA_SAFETY_ON_NULL_RETURN(ini);
+    EINA_SAFETY_ON_NULL_RETURN(ini->section);
+    EINA_SAFETY_ON_NULL_RETURN(key);
 
-    if (!ini || !key || !ini->section) return;
+    char str[12];
 
     snprintf(str, 12, "%d", value);
     efreet_ini_string_set(ini, key, str);
@@ -383,9 +397,11 @@ efreet_ini_int_set(Efreet_Ini *ini, cons
 EAPI double
 efreet_ini_double_get(Efreet_Ini *ini, const char *key)
 {
-    const char *str;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini, -1);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini->section, -1);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(key, -1);
 
-    if (!ini || !key || !ini->section) return -1;
+    const char *str;
 
     str = efreet_ini_string_get(ini, key);
     if (str) return atof(str);
@@ -396,11 +412,13 @@ efreet_ini_double_get(Efreet_Ini *ini, c
 EAPI void
 efreet_ini_double_set(Efreet_Ini *ini, const char *key, double value)
 {
+    EINA_SAFETY_ON_NULL_RETURN(ini);
+    EINA_SAFETY_ON_NULL_RETURN(ini->section);
+    EINA_SAFETY_ON_NULL_RETURN(key);
+
     char str[512];
     size_t len;
 
-    if (!ini || !key || !ini->section) return;
-
     snprintf(str, 512, "%.6f", value);
     len = strlen(str) - 1;
     /* Strip trailing zero's */
@@ -411,9 +429,11 @@ efreet_ini_double_set(Efreet_Ini *ini, c
 EAPI unsigned int
 efreet_ini_boolean_get(Efreet_Ini *ini, const char *key)
 {
-    const char *str;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini->section, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(key, 0);
 
-    if (!ini || !key || !ini->section) return 0;
+    const char *str;
 
     str = efreet_ini_string_get(ini, key);
     if (str && !strcmp("true", str)) return 1;
@@ -424,7 +444,9 @@ efreet_ini_boolean_get(Efreet_Ini *ini,
 EAPI void
 efreet_ini_boolean_set(Efreet_Ini *ini, const char *key, unsigned int value)
 {
-    if (!ini || !key || !ini->section) return;
+    EINA_SAFETY_ON_NULL_RETURN(ini);
+    EINA_SAFETY_ON_NULL_RETURN(ini->section);
+    EINA_SAFETY_ON_NULL_RETURN(key);
 
     if (value) efreet_ini_string_set(ini, key, "true");
     else efreet_ini_string_set(ini, key, "false");
@@ -433,14 +455,16 @@ efreet_ini_boolean_set(Efreet_Ini *ini,
 EAPI const char *
 efreet_ini_localestring_get(Efreet_Ini *ini, const char *key)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(ini->section, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(key, NULL);
+
     const char *lang, *country, *modifier;
     const char *val = NULL;
     char *buf;
     int maxlen = 5; /* _, @, [, ] and \0 */
     int found = 0;
 
-    if (!ini || !key || !ini->section) return NULL;
-
     lang = efreet_lang_get();
     country = efreet_lang_country_get();
     modifier = efreet_lang_modifier_get();
@@ -489,12 +513,14 @@ efreet_ini_localestring_get(Efreet_Ini *
 EAPI void
 efreet_ini_localestring_set(Efreet_Ini *ini, const char *key, const char *value)
 {
+    EINA_SAFETY_ON_NULL_RETURN(ini);
+    EINA_SAFETY_ON_NULL_RETURN(ini->section);
+    EINA_SAFETY_ON_NULL_RETURN(key);
+
     const char *lang, *country, *modifier;
     char *buf;
     int maxlen = 5; /* _, @, [, ] and \0 */
 
-    if (!ini || !key || !ini->section) return;
-
     lang = efreet_lang_get();
     country = efreet_lang_country_get();
     modifier = efreet_lang_modifier_get();
@@ -523,7 +549,9 @@ efreet_ini_localestring_set(Efreet_Ini *
 EAPI void
 efreet_ini_key_unset(Efreet_Ini *ini, const char *key)
 {
-    if (!ini || !key || !ini->section) return;
+    EINA_SAFETY_ON_NULL_RETURN(ini);
+    EINA_SAFETY_ON_NULL_RETURN(ini->section);
+    EINA_SAFETY_ON_NULL_RETURN(key);
 
     eina_hash_del_by_key(ini->section, key);
 }
Index: src/lib/efreet.c
===================================================================
--- src/lib/efreet.c	(리비전 71338)
+++ src/lib/efreet.c	(작업 사본)
@@ -312,6 +312,8 @@ efreet_fsetowner(int fd)
 EAPI void
 efreet_setowner(const char *path)
 {
+    EINA_SAFETY_ON_NULL_RETURN(path);
+
     int fd;
 
     fd = open(path, O_RDONLY);
Index: src/lib/efreet_trash.c
===================================================================
--- src/lib/efreet_trash.c	(리비전 71338)
+++ src/lib/efreet_trash.c	(작업 사본)
@@ -154,6 +154,10 @@ efreet_trash_dir_get(const char *file)
 EAPI int
 efreet_trash_delete_uri(Efreet_Uri *uri, int force_delete)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(uri, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(uri->path, 0);
+    EINA_SAFETY_ON_FALSE_RETURN_VAL(ecore_file_can_write(uri->path), 0);
+
     char dest[PATH_MAX];
     char times[64];
     const char *fname;
@@ -163,8 +167,6 @@ efreet_trash_delete_uri(Efreet_Uri *uri,
     time_t now;
     FILE *f;
 
-    if (!uri || !uri->path || !ecore_file_can_write(uri->path)) return 0;
-
     fname = ecore_file_file_get(uri->path);
 
     trash_dir = efreet_trash_dir_get(uri->path);
Index: src/lib/efreet_mime.c
===================================================================
--- src/lib/efreet_mime.c	(리비전 71338)
+++ src/lib/efreet_mime.c	(작업 사본)
@@ -270,10 +270,9 @@ efreet_mime_shutdown(void)
 EAPI const char *
 efreet_mime_type_get(const char *file)
 {
-    const char *type = NULL;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
 
-    if (!file)
-      return NULL;
+    const char *type = NULL;
 
     if ((type = efreet_mime_special_check(file)))
         return type;
@@ -296,6 +295,10 @@ efreet_mime_type_get(const char *file)
 EAPI const char *
 efreet_mime_type_icon_get(const char *mime, const char *theme, unsigned int size)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(mime, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(theme, NULL);
+    EINA_SAFETY_ON_TRUE_RETURN_VAL(size == 0, NULL);
+
     const char *icon = NULL;
     char *data;
     Eina_List *icons  = NULL;
@@ -304,9 +307,6 @@ efreet_mime_type_icon_get(const char *mi
     char buf[PATH_MAX];
     const char *cache;
 
-    if (!mime || !theme || !size)
-        return NULL;
-
     mime = eina_stringshare_add(mime);
     theme = eina_stringshare_add(theme);
     cache = efreet_mime_icon_entry_find(mime, theme, size);
@@ -393,12 +393,15 @@ efreet_mime_type_cache_flush(void)
 EAPI const char *
 efreet_mime_magic_type_get(const char *file)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
     return efreet_mime_magic_check_priority(file, 0, 0);
 }
 
 EAPI const char *
 efreet_mime_globs_type_get(const char *file)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
+
     Eina_List *l;
     Efreet_Mime_Glob *g;
     char *sl, *p;
@@ -406,8 +409,6 @@ efreet_mime_globs_type_get(const char *f
     char *ext, *mime;
 
     /* Check in the extension hash for the type */
-    if (!file) return NULL;
-
     ext = strchr(file, '.');
     if (ext)
     {
@@ -444,12 +445,14 @@ efreet_mime_globs_type_get(const char *f
 EAPI const char *
 efreet_mime_special_type_get(const char *file)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
     return efreet_mime_special_check(file);
 }
 
 EAPI const char *
 efreet_mime_fallback_type_get(const char *file)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
     return efreet_mime_fallback_check(file);
 }
 
@@ -1015,7 +1018,7 @@ efreet_mime_shared_mimeinfo_magic_load(c
 
     /* let's make mmap safe and just get 0 pages for IO erro */
     eina_mmap_safety_enabled_set(EINA_TRUE);
-   
+
     data = mmap(NULL, size, PROT_READ, MAP_SHARED, fd, 0);
     if (data == MAP_FAILED)
     {
Index: src/lib/efreet_icon.c
===================================================================
--- src/lib/efreet_icon.c	(리비전 71338)
+++ src/lib/efreet_icon.c	(작업 사본)
@@ -153,6 +153,8 @@ efreet_icon_user_dir_get(void)
 EAPI void
 efreet_icon_extension_add(const char *ext)
 {
+    EINA_SAFETY_ON_NULL_RETURN(ext);
+
     Eina_List *l;
 
     ext = eina_stringshare_add(ext);
@@ -187,7 +189,7 @@ efreet_icon_theme_list_get(void)
 EAPI Efreet_Icon_Theme *
 efreet_icon_theme_find(const char *theme_name)
 {
-    if (!theme_name) return NULL;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(theme_name, NULL);
 
     return efreet_cache_icon_theme_find(theme_name);
 }
@@ -231,6 +233,8 @@ efreet_icon_remove_extension(const char
 EAPI const char *
 efreet_icon_path_find(const char *theme_name, const char *icon, unsigned int size)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(icon, NULL);
+
     char *tmp;
     const char *value = NULL;
     Efreet_Icon_Theme *theme;
@@ -274,6 +278,8 @@ EAPI const char *
 efreet_icon_list_find(const char *theme_name, Eina_List *icons,
                       unsigned int size)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(icons, NULL);
+
     Eina_List *l;
     Eina_List *tmps = NULL;
     const char *icon = NULL;
@@ -348,6 +354,8 @@ efreet_icon_list_find(const char *theme_
 EAPI Efreet_Icon *
 efreet_icon_find(const char *theme_name, const char *icon, unsigned int size)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(icon, NULL);
+
     const char *path;
 
     path = efreet_icon_path_find(theme_name, icon, size);
@@ -409,7 +417,7 @@ efreet_icon_new(const char *path)
 EAPI void
 efreet_icon_free(Efreet_Icon *icon)
 {
-    if (!icon) return;
+    EINA_SAFETY_ON_NULL_RETURN(icon);
 
     icon->ref_count --;
     if (icon->ref_count > 0) return;
Index: src/lib/efreet_uri.c
===================================================================
--- src/lib/efreet_uri.c	(리비전 71338)
+++ src/lib/efreet_uri.c	(작업 사본)
@@ -22,6 +22,8 @@
 EAPI Efreet_Uri *
 efreet_uri_decode(const char *full_uri)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(full_uri, NULL);
+
     Efreet_Uri *uri;
     const char *p;
     char protocol[64], hostname[_POSIX_HOST_NAME_MAX], path[PATH_MAX];
@@ -79,11 +81,14 @@ efreet_uri_decode(const char *full_uri)
 EAPI const char *
 efreet_uri_encode(Efreet_Uri *uri)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(uri, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(uri->path, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(uri->protocol, NULL);
+
     char dest[PATH_MAX * 3 + 4];
     const char *p;
     int i;
 
-    if (!uri || !uri->path || !uri->protocol) return NULL;
     memset(dest, 0, PATH_MAX * 3 + 4);
     snprintf(dest, strlen(uri->protocol) + 4, "%s://", uri->protocol);
 
@@ -105,7 +110,8 @@ efreet_uri_encode(Efreet_Uri *uri)
 EAPI void
 efreet_uri_free(Efreet_Uri *uri)
 {
-    if (!uri) return;
+    EINA_SAFETY_ON_NULL_RETURN(uri);
+
     IF_RELEASE(uri->protocol);
     IF_RELEASE(uri->path);
     IF_RELEASE(uri->hostname);
Index: src/lib/efreet_utils.c
===================================================================
--- src/lib/efreet_utils.c	(리비전 71338)
+++ src/lib/efreet_utils.c	(작업 사본)
@@ -100,12 +100,13 @@ efreet_util_path_in_default(const char *
 EAPI const char *
 efreet_util_path_to_file_id(const char *path)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL);
+
     size_t len, len2;
     char *tmp, *p;
     char *base;
     const char *file_id;
 
-    if (!path) return NULL;
     file_id = eina_hash_find(file_id_by_desktop_path, path);
     if (file_id) return file_id;
 
@@ -142,24 +143,26 @@ efreet_util_path_to_file_id(const char *
 EAPI Eina_List *
 efreet_util_desktop_mime_list(const char *mime)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(mime, NULL);
     return efreet_util_cache_list("mime_types", mime);
 }
 
 EAPI Efreet_Desktop *
 efreet_util_desktop_wm_class_find(const char *wmname, const char *wmclass)
 {
+    EINA_SAFETY_ON_TRUE_RETURN_VAL((!wmname) && (!wmclass), NULL);
     return efreet_util_cache_find("startup_wm_class", wmname, wmclass);
 }
 
 EAPI Efreet_Desktop *
 efreet_util_desktop_file_id_find(const char *file_id)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(file_id, NULL);
+
     Efreet_Cache_Hash *hash;
     Efreet_Desktop *ret = NULL;
     const char *str;
 
-    if (!file_id) return NULL;
-
     hash = efreet_cache_util_hash_string("file_id");
     if (!hash) return NULL;
     str = eina_hash_find(hash->hash, file_id);
@@ -171,13 +174,13 @@ efreet_util_desktop_file_id_find(const c
 EAPI Efreet_Desktop *
 efreet_util_desktop_exec_find(const char *exec)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(exec, NULL);
+
     Efreet_Cache_Hash *hash = NULL;
     Efreet_Desktop *ret = NULL;
     Efreet_Cache_Array_String *names = NULL;
     unsigned int i;
 
-    if (!exec) return NULL;
-
     names = efreet_cache_util_names("exec_list");
     if (!names) return NULL;
     for (i = 0; i < names->array_count; i++)
@@ -216,30 +219,34 @@ efreet_util_desktop_exec_find(const char
 EAPI Efreet_Desktop *
 efreet_util_desktop_name_find(const char *name)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL);
     return efreet_util_cache_find("name", name, NULL);
 }
 
 EAPI Efreet_Desktop *
 efreet_util_desktop_generic_name_find(const char *generic_name)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(generic_name, NULL);
     return efreet_util_cache_find("generic_name", generic_name, NULL);
 }
 
 EAPI Eina_List *
 efreet_util_desktop_name_glob_list(const char *glob)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(glob, NULL);
     return efreet_util_cache_glob_list("name", glob);
 }
 
 EAPI Eina_List *
 efreet_util_desktop_exec_glob_list(const char *glob)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(glob, NULL);
+
     Efreet_Cache_Hash *hash = NULL;
     Eina_List *ret = NULL;
     Efreet_Cache_Array_String *names = NULL;
     unsigned int i;
 
-    if (!glob) return NULL;
     if (!strcmp(glob, "*"))
         glob = NULL;
 
@@ -280,12 +287,14 @@ efreet_util_desktop_exec_glob_list(const
 EAPI Eina_List *
 efreet_util_desktop_generic_name_glob_list(const char *glob)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(glob, NULL);
     return efreet_util_cache_glob_list("generic_name", glob);
 }
 
 EAPI Eina_List *
 efreet_util_desktop_comment_glob_list(const char *glob)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(glob, NULL);
     return efreet_util_cache_glob_list("comment", glob);
 }
 
@@ -306,6 +315,7 @@ efreet_util_desktop_categories_list(void
 EAPI Eina_List *
 efreet_util_desktop_category_list(const char *category)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(category, NULL);
     return efreet_util_cache_list("categories", category);
 }
 
@@ -472,6 +482,9 @@ efreet_util_cache_glob_list(const char *
 EAPI void
 efreet_hash_free(Eina_Hash *hash, Eina_Free_Cb free_cb)
 {
+    EINA_SAFETY_ON_NULL_RETURN(hash);
+    EINA_SAFETY_ON_NULL_RETURN(free_cb);
+
     eina_hash_free_cb_set(hash, free_cb);
     eina_hash_free(hash);
 }
Index: src/lib/efreet_cache.c
===================================================================
--- src/lib/efreet_cache.c	(리비전 71338)
+++ src/lib/efreet_cache.c	(작업 사본)
@@ -262,6 +262,7 @@ efreet_cache_shutdown(void)
 EAPI const char *
 efreet_icon_cache_file(const char *theme)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(theme, NULL);
     static char cache_file[PATH_MAX] = { '\0' };
     const char *cache;
 
@@ -792,7 +793,7 @@ efreet_cache_icon_theme_list(void)
 EAPI void
 efreet_cache_array_string_free(Efreet_Cache_Array_String *array)
 {
-    if (!array) return;
+    EINA_SAFETY_ON_NULL_RETURN(array);
     free(array->array);
     free(array);
 }
Index: src/lib/efreet_menu.c
===================================================================
--- src/lib/efreet_menu.c	(리비전 71338)
+++ src/lib/efreet_menu.c	(작업 사본)
@@ -521,14 +521,11 @@ efreet_menu_shutdown(void)
 EAPI Efreet_Menu *
 efreet_menu_new(const char *name)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL);
+
     Efreet_Menu *menu;
 
-    if (!name)
-    {
-        ERR("Efreet_menu: Error creating a new menu, name is missing");
-        return NULL;
-    }
-    menu = efreet_menu_entry_new();
+	menu = efreet_menu_entry_new();
     menu->type = EFREET_MENU_ENTRY_MENU;
     menu->name = eina_stringshare_add(name);
     return menu;
@@ -580,6 +577,8 @@ efreet_menu_get(void)
 EAPI Efreet_Menu *
 efreet_menu_parse(const char *path)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(path, NULL);
+
     Efreet_Xml *xml;
     Efreet_Menu_Internal *internal = NULL;
     Efreet_Menu *entry = NULL;
@@ -652,6 +651,9 @@ efreet_menu_parse(const char *path)
 EAPI int
 efreet_menu_save(Efreet_Menu *menu, const char *path)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(menu, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(path, 0);
+
     FILE *f;
     int ret;
 
@@ -766,10 +768,12 @@ efreet_menu_save_indent(FILE *f, int ind
 EAPI int
 efreet_menu_desktop_insert(Efreet_Menu *menu, Efreet_Desktop *desktop, int pos)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(menu, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, 0);
+
     Efreet_Menu *entry;
     const char *id;
 
-    if (!desktop || !menu) return 0;
     id = efreet_util_path_to_file_id(desktop->orig_path);
     if (!id) return 0;
 
@@ -794,9 +798,10 @@ efreet_menu_desktop_insert(Efreet_Menu *
 EAPI int
 efreet_menu_desktop_remove(Efreet_Menu *menu, Efreet_Desktop *desktop)
 {
-    Efreet_Menu *entry;
+    EINA_SAFETY_ON_NULL_RETURN_VAL(menu, 0);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(desktop, 0);
 
-    if (!desktop || !menu) return 0;
+    Efreet_Menu *entry;
 
     entry = eina_list_search_unsorted(menu->entries,
                                       EINA_COMPARE_CB(efreet_menu_cb_entry_compare_desktop),
@@ -813,6 +818,9 @@ efreet_menu_desktop_remove(Efreet_Menu *
 EAPI void
 efreet_menu_dump(Efreet_Menu *menu, const char *indent)
 {
+    EINA_SAFETY_ON_NULL_RETURN(menu);
+    EINA_SAFETY_ON_NULL_RETURN(indent);
+
     Eina_List *l;
 
     INF("%s%s: ", indent, menu->name);
@@ -859,6 +867,9 @@ EAPI Eina_List *
 efreet_default_dirs_get(const char *user_dir, Eina_List *system_dirs,
                                                     const char *suffix)
 {
+    EINA_SAFETY_ON_NULL_RETURN_VAL(user_dir, NULL);
+    EINA_SAFETY_ON_NULL_RETURN_VAL(suffix, NULL);
+
     const char *xdg_dir;
     char dir[PATH_MAX];
     Eina_List *list = NULL;
@@ -1540,7 +1551,7 @@ efreet_menu_merge(Efreet_Menu_Internal *
     }
 
     /* don't merge the same path twice */
-    if (eina_hash_find(efreet_merged_menus, rp)) 
+    if (eina_hash_find(efreet_merged_menus, rp))
     {
         return 1;
     }
@@ -2457,6 +2468,8 @@ efreet_menu_entry_new(void)
 EAPI void
 efreet_menu_free(Efreet_Menu *entry)
 {
+    EINA_SAFETY_ON_NULL_RETURN(entry);
+
     Efreet_Menu *sub;
 
     IF_RELEASE(entry->name);
@@ -2815,7 +2828,7 @@ efreet_menu_filter_not_matches(Efreet_Me
         if ((eina_list_count(op->categories) > 0) && !md->desktop->categories)
             return 1;
 
-        EINA_LIST_FOREACH(op->categories, l, t) 
+        EINA_LIST_FOREACH(op->categories, l, t)
         {
             if (eina_list_search_unsorted(md->desktop->categories,
                                           EINA_COMPARE_CB(strcmp), t))
