diff options
author | David Disseldorp <ddiss@samba.org> | 2015-01-12 16:49:54 +0100 |
---|---|---|
committer | Volker Lendecke <vl@samba.org> | 2015-01-12 19:22:30 +0100 |
commit | 8365318b6d5df5db3f47ee496b3cf5ce83252572 (patch) | |
tree | 9ed4711b3af64580d8bc0c782c0e4fc929dacd8a /source3/locking | |
parent | 26809d17f4a65334a40c219a9a29ed1ea1d4380b (diff) | |
download | samba-8365318b6d5df5db3f47ee496b3cf5ce83252572.tar.gz |
leases_db: don't leak lock_path onto talloc tos
Also check for allocation failures.
Signed-off-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Mon Jan 12 19:22:31 CET 2015 on sn-devel-104
Diffstat (limited to 'source3/locking')
-rw-r--r-- | source3/locking/leases_db.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source3/locking/leases_db.c b/source3/locking/leases_db.c index 2ee6a2643bf..4167ef713e1 100644 --- a/source3/locking/leases_db.c +++ b/source3/locking/leases_db.c @@ -35,16 +35,23 @@ static struct db_context *leases_db; bool leases_db_init(bool read_only) { + char *db_path; + if (leases_db) { return true; } - leases_db = db_open(NULL, lock_path("leases.tdb"), 0, + db_path = lock_path("leases.tdb"); + if (db_path == NULL) { + return false; + } + + leases_db = db_open(NULL, db_path, 0, TDB_DEFAULT|TDB_VOLATILE|TDB_CLEAR_IF_FIRST| TDB_INCOMPATIBLE_HASH, read_only ? O_RDONLY : O_RDWR|O_CREAT, 0644, DBWRAP_LOCK_ORDER_2, DBWRAP_FLAG_NONE); - + TALLOC_FREE(db_path); if (leases_db == NULL) { DEBUG(1, ("ERROR: Failed to initialise leases database\n")); return false; |