]> the.earth.li Git - onak.git/commitdiff
Bail out if we can't change to the DB directory for the FS backend
authorJonathan McDowell <noodles@earth.li>
Tue, 22 Jul 2014 11:42:35 +0000 (12:42 +0100)
committerJonathan McDowell <noodles@earth.li>
Tue, 22 Jul 2014 11:44:20 +0000 (12:44 +0100)
keydb_fs.c

index 26eb99e70ea98d70dd7a76becd6fca719078d016..277929734c633ab14bb2fd00b2fea1dfe19c7db6 100644 (file)
@@ -648,7 +648,15 @@ struct onak_dbctx *keydb_fs_init(bool readonly)
                mkdir(config.db_dir, 0777);
                privctx->lockfile_fd = open(buffer, O_RDWR | O_CREAT, 0600);
        }
-       chdir(config.db_dir);
+       if (chdir(config.db_dir) == -1) {
+               /* Shouldn't happen after the above */
+               logthing(LOGTHING_CRITICAL,
+                       "Couldn't change to database directory: %s",
+                       strerror(errno));
+               free(dbctx->priv);
+               free(dbctx);
+               return NULL;
+       }
        privctx->lockfile_fd = open(buffer,
                                 (privctx->lockfile_readonly) ?
                                 O_RDONLY : O_RDWR);