Jakub Wilk avatar Jakub Wilk committed 62c0e7e

Fix error handling.

Comments (0)

Files changed (1)

          * $HOME/GNUstep), but only if the call passes sanity checks.
          */
         if (mode == 0777) {
+            errno = 0;
             struct passwd* pw = getpwuid(getuid());
-            if (pw == NULL || pw->pw_dir)
+            if (pw == NULL)
                 return -1;
-            size_t home_len = strlen(pw->pw_dir);
-            if (strncmp(path, pw->pw_dir, home_len) == 0 && strcmp(path + home_len, "/GNUstep") == 0) {
-                errno = EACCES;
-                return -1;
+            if (pw->pw_dir != NULL) {
+                size_t home_len = strlen(pw->pw_dir);
+                if (strncmp(path, pw->pw_dir, home_len) == 0 && strcmp(path + home_len, "/GNUstep") == 0) {
+                    errno = EACCES;
+                    return -1;
+                }
             }
         }
     }
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.