summaryrefslogtreecommitdiff
path: root/source4/rpc_server/samr/dcesrv_samr.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2005-12-27 07:49:34 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:47:47 -0500
commit40166d7ecbc6db9e7d7ce761a0c770e025c3895f (patch)
tree594dbbb46ba3d93ef32b68a07acb7ccb081f809d /source4/rpc_server/samr/dcesrv_samr.c
parent53b23c0b5abf0912194b916299887551354e69b9 (diff)
downloadsamba-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.c20
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;
}