summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Lendecke <vl@sernet.de>2007-10-21 17:05:34 +0200
committerVolker Lendecke <vl@sernet.de>2007-10-21 19:26:26 +0200
commit67328bd27b1e881a4bcdd5160133afa9a267eaac (patch)
tree574f96ff83e023765662f218bb4fda3273d87f46
parent04d660bbb371f859cc50a9f3ea7d358f74acfa8b (diff)
downloadsamba-67328bd27b1e881a4bcdd5160133afa9a267eaac.tar.gz
samba-67328bd27b1e881a4bcdd5160133afa9a267eaac.tar.xz
samba-67328bd27b1e881a4bcdd5160133afa9a267eaac.zip
Don't segfault if locking.tdb can't be opened
Thanks to Steve Langasek <vorlon@debian.org>
-rw-r--r--source/utils/status.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/utils/status.c b/source/utils/status.c
index 8bf1de0e617..9a4b3a48351 100644
--- a/source/utils/status.c
+++ b/source/utils/status.c
@@ -426,6 +426,19 @@ static int traverse_sessionid(struct db_record *db, void *state)
if ( show_locks ) {
int result;
+ struct db_context *db;
+ db = db_open(NULL, lock_path("locking.tdb"), 0,
+ TDB_DEFAULT, O_RDONLY, 0);
+
+ if (!db) {
+ d_printf("%s not initialised\n",
+ lock_path("locking.tdb"));
+ d_printf("This is normal if an SMB client has never "
+ "connected to your server.\n");
+ exit(0);
+ } else {
+ TALLOC_FREE(db);
+ }
if (!locking_init(1)) {
d_printf("Can't initialise locking module - exiting\n");