svn commit: samba r12268 - in branches/SAMBA_4_0/source/auth/gensec: .

abartlet at samba.org abartlet at samba.org
Thu Dec 15 20:29:03 GMT 2005


Author: abartlet
Date: 2005-12-15 20:29:02 +0000 (Thu, 15 Dec 2005)
New Revision: 12268

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12268

Log:
Use transactions to ensure that the schannel db is consistant.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/auth/gensec/schannel_state.c


Changeset:
Modified: branches/SAMBA_4_0/source/auth/gensec/schannel_state.c
===================================================================
--- branches/SAMBA_4_0/source/auth/gensec/schannel_state.c	2005-12-15 20:25:37 UTC (rev 12267)
+++ branches/SAMBA_4_0/source/auth/gensec/schannel_state.c	2005-12-15 20:29:02 UTC (rev 12268)
@@ -122,6 +122,14 @@
 	ldb_msg_add_string(msg, "flatname", creds->domain);
 	samdb_msg_add_dom_sid(ldb, mem_ctx, msg, "objectSid", creds->sid);
 
+	ret = ldb_transaction_start(ldb);
+	if (ret != 0) {
+		DEBUG(0,("Unable to start transaction to add %s to session key db - %s\n", 
+			 ldb_dn_linearize(msg, msg->dn), ldb_errstring(ldb)));
+		talloc_free(ldb);
+		return NT_STATUS_INTERNAL_DB_CORRUPTION;
+	}
+
 	ldb_delete(ldb, msg->dn);
 
 	ret = ldb_add(ldb, msg);
@@ -133,6 +141,15 @@
 		return NT_STATUS_INTERNAL_DB_CORRUPTION;
 	}
 
+	ret = ldb_transaction_commit(ldb);
+
+	if (ret != 0) {
+		DEBUG(0,("Unable to commit adding %s to session key db - %s\n", 
+			 ldb_dn_linearize(msg, msg->dn), ldb_errstring(ldb)));
+		talloc_free(ldb);
+		return NT_STATUS_INTERNAL_DB_CORRUPTION;
+	}
+
 	talloc_free(ldb);
 
 	return NT_STATUS_OK;



More information about the samba-cvs mailing list