]> 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 11:28:34 +0000 (12:28 +0100)
Signed-off-by: Karel Zak <kzak@redhat.com>
libblkid/src/save.c

index 46925ab2a6af78bebc9a8ceeee60f82664639146..c94cc2a82d51cec0546610d89a8b4581c908428e 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;
                }
        }