diff options
author | Andrew Bartlett <abartlet@samba.org> | 2005-12-27 07:49:34 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:47:47 -0500 |
commit | 40166d7ecbc6db9e7d7ce761a0c770e025c3895f (patch) | |
tree | 594dbbb46ba3d93ef32b68a07acb7ccb081f809d /source4/rpc_server/samr/dcesrv_samr.c | |
parent | 53b23c0b5abf0912194b916299887551354e69b9 (diff) | |
download | samba-40166d7ecbc6db9e7d7ce761a0c770e025c3895f.tar.gz samba-40166d7ecbc6db9e7d7ce761a0c770e025c3895f.tar.bz2 samba-40166d7ecbc6db9e7d7ce761a0c770e025c3895f.zip |
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)
Diffstat (limited to 'source4/rpc_server/samr/dcesrv_samr.c')
-rw-r--r-- | source4/rpc_server/samr/dcesrv_samr.c | 20 |
1 files changed, 12 insertions, 8 deletions
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; } |