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;

-- 


Reply via email to