englebass pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7eebd55ebe32883cd59638fba3b76b21701615ca
commit 7eebd55ebe32883cd59638fba3b76b21701615ca Author: Sebastian Dransfeld <sebastian.dransf...@sintef.no> Date: Tue Oct 22 12:54:22 2013 +0200 efreet: Fix file opening - Store result from mkstemp so we don't leak file descriptor - No need to chmod, as we set correct umask before createing file - Use fdopen to open file from file descriptor, not from path --- src/bin/efreet/efreetd.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/bin/efreet/efreetd.c b/src/bin/efreet/efreetd.c index 18fc500..2a61aff 100644 --- a/src/bin/efreet/efreetd.c +++ b/src/bin/efreet/efreetd.c @@ -28,24 +28,20 @@ main(int argc, char *argv[]) { char path[PATH_MAX]; FILE *log; + int fd; mode_t um; strcpy(path, "/tmp/efreetd_XXXXXX"); - um = umask(0077); - if (mkstemp(path) < 0) - { - perror("mkstemp"); - umask(um); - return 1; - } + um = umask(S_IRWXG|S_IRWXO); + fd = mkstemp(path); umask(um); - if (chmod(path, 0700) < 0) + if (fd < 0) { - perror("chmod"); + perror("mkstemp"); return 1; } - log = fopen(path, "wb"); + log = fdopen(fd, "wb"); if (!log) return 1; if (!eina_init()) return 1; --