diff --git a/legacy/efreet/src/bin/efreet_desktop_cache_create.c b/legacy/efreet/src/bin/efreet_desktop_cache_create.c index 44cd196fd0..3f8b10c1f3 100644 --- a/legacy/efreet/src/bin/efreet_desktop_cache_create.c +++ b/legacy/efreet/src/bin/efreet_desktop_cache_create.c @@ -185,7 +185,11 @@ cache_scan(const char *path, const char *base_id, int priority, int recurse, int } else { - if (!cache_add(buf, file_id, priority, changed)) return 0; + if (!cache_add(buf, file_id, priority, changed)) + { + closedir(files); + return 0; + } } } closedir(files); diff --git a/legacy/efreet/src/lib/efreet_desktop.c b/legacy/efreet/src/lib/efreet_desktop.c index cafe1f1692..d910ad8313 100644 --- a/legacy/efreet/src/lib/efreet_desktop.c +++ b/legacy/efreet/src/lib/efreet_desktop.c @@ -1392,12 +1392,14 @@ efreet_desktop_write_cache_dirs_file(void) eina_stringshare_del(dir); } efreet_desktop_dirs = NULL; + if (fd >= 0) close(fd); + if (cachefd >= 0) close(cachefd); return 1; error: if (map != MAP_FAILED) munmap(map, st.st_size); - if (fd > 0) close(fd); - if (cachefd > 0) close(cachefd); + if (fd >= 0) close(fd); + if (cachefd >= 0) close(cachefd); return 0; }