forked from enlightenment/efl
parent
96daa6c974
commit
f3a591b253
|
@ -209,7 +209,6 @@ main(int argc, char **argv)
|
|||
Eina_List *dirs = NULL, *user_dirs = NULL;
|
||||
int priority = 0;
|
||||
char *dir = NULL;
|
||||
char *map = MAP_FAILED;
|
||||
char *path;
|
||||
int fd = -1, tmpfd, dirsfd = -1;
|
||||
struct stat st;
|
||||
|
@ -297,9 +296,12 @@ main(int argc, char **argv)
|
|||
if (!dirs) goto error;
|
||||
|
||||
dirsfd = open(efreet_desktop_cache_dirs(), O_APPEND | O_RDWR, S_IRUSR | S_IWUSR);
|
||||
if ((dirsfd > 0) && (fstat(dirsfd, &st) == 0) && (st.st_size > 0))
|
||||
if (dirsfd >= 0)
|
||||
{
|
||||
if ((fstat(dirsfd, &st) == 0) && (st.st_size > 0))
|
||||
{
|
||||
char *p;
|
||||
char *map;
|
||||
|
||||
map = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, dirsfd, 0);
|
||||
if (map == MAP_FAILED) goto error;
|
||||
|
@ -312,10 +314,7 @@ main(int argc, char **argv)
|
|||
p += size;
|
||||
}
|
||||
munmap(map, st.st_size);
|
||||
map = MAP_FAILED;
|
||||
}
|
||||
if (dirsfd > 0)
|
||||
{
|
||||
close(dirsfd);
|
||||
dirsfd = -1;
|
||||
unlink(efreet_desktop_cache_dirs());
|
||||
|
@ -406,8 +405,7 @@ main(int argc, char **argv)
|
|||
close(fd);
|
||||
return 0;
|
||||
error:
|
||||
if (map != MAP_FAILED) munmap(map, st.st_size);
|
||||
if (dirsfd > 0) close(dirsfd);
|
||||
if (dirsfd >= 0) close(dirsfd);
|
||||
IF_FREE(dir);
|
||||
efreet_desktop_edd_shutdown(edd);
|
||||
edd_error:
|
||||
|
|
|
@ -1334,7 +1334,6 @@ efreet_desktop_write_cache_dirs_file(void)
|
|||
char file[PATH_MAX];
|
||||
int fd = -1;
|
||||
int cachefd = -1;
|
||||
char *map = MAP_FAILED;
|
||||
char *dir;
|
||||
struct stat st;
|
||||
struct flock fl;
|
||||
|
@ -1357,6 +1356,7 @@ efreet_desktop_write_cache_dirs_file(void)
|
|||
{
|
||||
Eina_List *l, *ln;
|
||||
char *p;
|
||||
char *map;
|
||||
|
||||
map = mmap(NULL, st.st_size, PROT_READ, MAP_SHARED, cachefd, 0);
|
||||
if (map == MAP_FAILED) goto error;
|
||||
|
@ -1376,6 +1376,7 @@ efreet_desktop_write_cache_dirs_file(void)
|
|||
}
|
||||
p += size;
|
||||
}
|
||||
munmap(map, st.st_size);
|
||||
}
|
||||
EINA_LIST_FREE(efreet_desktop_dirs, dir)
|
||||
{
|
||||
|
@ -1397,7 +1398,6 @@ efreet_desktop_write_cache_dirs_file(void)
|
|||
return 1;
|
||||
|
||||
error:
|
||||
if (map != MAP_FAILED) munmap(map, st.st_size);
|
||||
if (fd >= 0) close(fd);
|
||||
if (cachefd >= 0) close(cachefd);
|
||||
return 0;
|
||||
|
@ -1567,7 +1567,9 @@ efreet_desktop_changes_listen(void)
|
|||
}
|
||||
|
||||
dirsfd = open(efreet_desktop_cache_dirs(), O_RDONLY, S_IRUSR | S_IWUSR);
|
||||
if ((dirsfd > 0) && (fstat(dirsfd, &st) == 0) && (st.st_size > 0))
|
||||
if (dirsfd >= 0)
|
||||
{
|
||||
if ((fstat(dirsfd, &st) == 0) && (st.st_size > 0))
|
||||
{
|
||||
char *p;
|
||||
char *map;
|
||||
|
@ -1584,11 +1586,12 @@ efreet_desktop_changes_listen(void)
|
|||
}
|
||||
munmap(map, st.st_size);
|
||||
}
|
||||
if (dirsfd > 0) close(dirsfd);
|
||||
close(dirsfd);
|
||||
}
|
||||
|
||||
return;
|
||||
error:
|
||||
if (dirsfd > 0) close(dirsfd);
|
||||
if (dirsfd >= 0) close(dirsfd);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in New Issue