chiark / gitweb /
udev: silence TOCTOU warning when creating a directory
[elogind.git] / src / udev / collect / collect.c
index dc849bd0f00839340038902de73bd67fb5f47d5e..90df360eb2b5ec110f1fc5e420250eb389072ca2 100644 (file)
@@ -86,12 +86,12 @@ static void usage(void)
  */
 static int prepare(char *dir, char *filename)
 {
-        struct stat statbuf;
         char buf[512];
-        int fd;
+        int r, fd;
 
-        if (stat(dir, &statbuf) < 0)
-                mkdir(dir, 0700);
+        r = mkdir(dir, 0700);
+        if (r < 0 && errno != EEXIST)
+                return -errno;
 
         snprintf(buf, sizeof(buf), "%s/%s", dir, filename);