[systemd-commits] src/udev

David Herrmann dvdhrm at kemper.freedesktop.org
Sun Nov 16 10:57:30 PST 2014


 src/udev/collect/collect.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

New commits:
commit c9732bae8f29be644e7b4b1cc4f738ef85477c72
Author: Ronny Chevalier <chevalier.ronny at gmail.com>
Date:   Sun Nov 9 15:42:23 2014 +0100

    udev: silence TOCTOU warning when creating a directory
    
    CID#979416. There is no real race here to fix, but lets make coverity
    happy and rework the code.
    
    Note that we still fail if the directory is removed _after_ we ran
    mkdir(), so the same race is still there. Coverity is complaining, though.
    Rewrite the code to make it happy.
    
    (David: rewrote the commit-message to note that this is not a race. If I'm
            wrong, blame me, not Ronny!)

diff --git a/src/udev/collect/collect.c b/src/udev/collect/collect.c
index dc849bd..90df360 100644
--- a/src/udev/collect/collect.c
+++ b/src/udev/collect/collect.c
@@ -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);
 



More information about the systemd-commits mailing list