[PATCH 13/27] idmap_autorid: don't leak state_path onto talloc tos

David Disseldorp ddiss at samba.org
Sun Nov 2 12:21:35 MST 2014


Also check for allocation failures.

Signed-off-by: David Disseldorp <ddiss at samba.org>
---
 source3/winbindd/idmap_autorid.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/source3/winbindd/idmap_autorid.c b/source3/winbindd/idmap_autorid.c
index 37612c2..eeac2b0 100644
--- a/source3/winbindd/idmap_autorid.c
+++ b/source3/winbindd/idmap_autorid.c
@@ -713,6 +713,7 @@ static NTSTATUS idmap_autorid_initialize(struct idmap_domain *dom)
 	struct idmap_tdb_common_context *commonconfig;
 	struct autorid_global_config *config;
 	NTSTATUS status;
+	char *db_path;
 
 	if (!strequal(dom->name, "*")) {
 		DEBUG(0, ("idmap_autorid_initialize: Error: autorid configured "
@@ -779,9 +780,16 @@ static NTSTATUS idmap_autorid_initialize(struct idmap_domain *dom)
 	commonconfig->rw_ops->get_new_id = idmap_autorid_allocate_id;
 	commonconfig->rw_ops->set_mapping = idmap_tdb_common_set_mapping;
 
-	status = idmap_autorid_db_open(state_path("autorid.tdb"),
+	db_path = state_path("autorid.tdb");
+	if (db_path == NULL) {
+		status = NT_STATUS_NO_MEMORY;
+		goto error;
+	}
+
+	status = idmap_autorid_db_open(db_path,
 				       NULL, /* TALLOC_CTX */
 				       &autorid_db);
+	TALLOC_FREE(db_path);
 	if (!NT_STATUS_IS_OK(status)) {
 		goto error;
 	}
-- 
1.8.4.5



More information about the samba-technical mailing list