chiark / gitweb /
Always use errno > 0 to help gcc
[elogind.git] / src / shared / fileio.c
index 4e6ff16045d68ff4e4b6c26d97c2ae50080eaf31..1c7d4851303af7ba9caae54809dc83207c8d55a5 100644 (file)
@@ -187,7 +187,8 @@ int parse_env_file(
         assert(fname);
         assert(separator);
 
-        if ((r = read_full_file(fname, &contents, NULL)) < 0)
+        r = read_full_file(fname, &contents, NULL);
+        if (r < 0)
                 return r;
 
         p = contents;
@@ -343,8 +344,9 @@ int load_env_file(const char *fname, char ***rl) {
 }
 
 int write_env_file(const char *fname, char **l) {
-        char **i, *p;
-        FILE *f;
+        char **i;
+        char _cleanup_free_ *p = NULL;
+        FILE _cleanup_fclose_ *f = NULL;
         int r;
 
         r = fopen_temporary(fname, &f, &p);
@@ -362,7 +364,7 @@ int write_env_file(const char *fname, char **l) {
         fflush(f);
 
         if (ferror(f)) {
-                if (errno != 0)
+                if (errno > 0)
                         r = -errno;
                 else
                         r = -EIO;
@@ -376,8 +378,5 @@ int write_env_file(const char *fname, char **l) {
         if (r < 0)
                 unlink(p);
 
-        fclose(f);
-        free(p);
-
         return r;
 }