From 40166d7ecbc6db9e7d7ce761a0c770e025c3895f Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 27 Dec 2005 07:49:34 +0000 Subject: r12506: Fix up issues shown up by the expanded RPC-SAMR testsuite, and add ldb transactions to the SAMR password change code. Andrew Bartlett (This used to be commit dc091c6c06b5e5488bcc475e88a9f18ead545c85) --- source4/rpc_server/samr/dcesrv_samr.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'source4/rpc_server/samr/dcesrv_samr.c') diff --git a/source4/rpc_server/samr/dcesrv_samr.c b/source4/rpc_server/samr/dcesrv_samr.c index 11d9bca068..de08695502 100644 --- a/source4/rpc_server/samr/dcesrv_samr.c +++ b/source4/rpc_server/samr/dcesrv_samr.c @@ -752,7 +752,8 @@ static NTSTATUS samr_CreateUser2(struct dcesrv_call_state *dce_call, TALLOC_CTX ret = ldb_transaction_start(d_state->sam_ctx); if (ret != 0) { - DEBUG(0,("Failed to start a transaction for user creation\n")); + DEBUG(0,("Failed to start a transaction for user creation: %s\n", + ldb_errstring(d_state->sam_ctx))); return NT_STATUS_INTERNAL_DB_CORRUPTION; } @@ -825,8 +826,9 @@ static NTSTATUS samr_CreateUser2(struct dcesrv_call_state *dce_call, TALLOC_CTX ret = samdb_add(d_state->sam_ctx, mem_ctx, msg); if (ret != 0) { ldb_transaction_cancel(d_state->sam_ctx); - DEBUG(0,("Failed to create user record %s\n", - ldb_dn_linearize(mem_ctx, msg->dn))); + DEBUG(0,("Failed to create user record %s: %s\n", + ldb_dn_linearize(mem_ctx, msg->dn), + ldb_errstring(d_state->sam_ctx))); return NT_STATUS_INTERNAL_DB_CORRUPTION; } @@ -885,18 +887,20 @@ static NTSTATUS samr_CreateUser2(struct dcesrv_call_state *dce_call, TALLOC_CTX /* modify the samdb record */ ret = samdb_replace(a_state->sam_ctx, mem_ctx, msg); if (ret != 0) { - DEBUG(0,("Failed to modify account record %s to set userAccountControl\n", - ldb_dn_linearize(mem_ctx, msg->dn))); + DEBUG(0,("Failed to modify account record %s to set userAccountControl: %s\n", + ldb_dn_linearize(mem_ctx, msg->dn), + ldb_errstring(d_state->sam_ctx))); ldb_transaction_cancel(d_state->sam_ctx); /* we really need samdb.c to return NTSTATUS */ return NT_STATUS_UNSUCCESSFUL; } - ldb_transaction_commit(d_state->sam_ctx); + ret = ldb_transaction_commit(d_state->sam_ctx); if (ret != 0) { - DEBUG(0,("Failed to commit transaction to add and modify account record %s\n", - ldb_dn_linearize(mem_ctx, msg->dn))); + DEBUG(0,("Failed to commit transaction to add and modify account record %s: %s\n", + ldb_dn_linearize(mem_ctx, msg->dn), + ldb_errstring(d_state->sam_ctx))); return NT_STATUS_INTERNAL_DB_CORRUPTION; } -- cgit