summaryrefslogtreecommitdiff
path: root/source3/locking
diff options
context:
space:
mode:
authorDavid Disseldorp <ddiss@samba.org>2015-01-12 16:49:54 +0100
committerVolker Lendecke <vl@samba.org>2015-01-12 19:22:30 +0100
commit8365318b6d5df5db3f47ee496b3cf5ce83252572 (patch)
tree9ed4711b3af64580d8bc0c782c0e4fc929dacd8a /source3/locking
parent26809d17f4a65334a40c219a9a29ed1ea1d4380b (diff)
downloadsamba-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.c11
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;