From c398930c97141725346ed50e403490c6830feac4 Mon Sep 17 00:00:00 2001
From: Jonathan McDowell <noodles@earth.li>
Date: Tue, 22 Jul 2014 12:42:35 +0100
Subject: [PATCH] Bail out if we can't change to the DB directory for the FS
 backend

---
 keydb_fs.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/keydb_fs.c b/keydb_fs.c
index 26eb99e..2779297 100644
--- a/keydb_fs.c
+++ b/keydb_fs.c
@@ -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);
-- 
2.39.5