]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libblkid: check mkdir(/run/blkid) return code [coverity scan]
authorKarel Zak <kzak@redhat.com>
Wed, 12 Dec 2012 11:27:05 +0000 (12:27 +0100)
committerKarel Zak <kzak@redhat.com>
Wed, 12 Dec 2012 19:54:56 +0000 (20:54 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid/src/save.c

index 7ce6fa498e33f863db7f65b3ef625b713ff6ce34..8ce8ea934314728be12a1def9226835392f14ed2 100644 (file)
@@ -81,11 +81,16 @@ int blkid_flush_cache(blkid_cache cache)
            BLKID_RUNTIME_DIR "/", sizeof(BLKID_RUNTIME_DIR)) == 0) {
 
                /* default destination, create the directory if necessary */
-               if (stat(BLKID_RUNTIME_DIR, &st) && errno == ENOENT) {
-
-                       mkdir(BLKID_RUNTIME_DIR, S_IWUSR|
-                                                S_IRUSR|S_IRGRP|S_IROTH|
-                                                S_IXUSR|S_IXGRP|S_IXOTH);
+               if (stat(BLKID_RUNTIME_DIR, &st)
+                   && errno == ENOENT
+                   && mkdir(BLKID_RUNTIME_DIR, S_IWUSR|
+                                               S_IRUSR|S_IRGRP|S_IROTH|
+                                               S_IXUSR|S_IXGRP|S_IXOTH) != 0
+                   && errno != EEXIST) {
+                       DBG(DEBUG_SAVE,
+                               printf("can't create %s directory for cache file\n",
+                                       BLKID_RUNTIME_DIR));
+                       return 0;
                }
        }