[PATCH] leases_db: don't leak lock_path onto talloc tos

David Disseldorp ddiss at samba.org
Mon Jan 12 08:49:54 MST 2015


Also check for allocation failures.

Signed-off-by: David Disseldorp <ddiss at samba.org>
---
 source3/locking/leases_db.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/source3/locking/leases_db.c b/source3/locking/leases_db.c
index 2ee6a26..4167ef7 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;
-- 
2.1.2



More information about the samba-technical mailing list