svn commit: samba r19284 - in
branches/SAMBA_4_0_RELEASE/source/libnet: .
abartlet at samba.org
abartlet at samba.org
Sat Oct 14 21:42:17 GMT 2006
Author: abartlet
Date: 2006-10-14 21:42:17 +0000 (Sat, 14 Oct 2006)
New Revision: 19284
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19284
Log:
Avoid segfaulting if the user doesn't exist locally already (msgs was
null).
Andrew Bartlett
Modified:
branches/SAMBA_4_0_RELEASE/source/libnet/libnet_samsync_ldb.c
Changeset:
Modified: branches/SAMBA_4_0_RELEASE/source/libnet/libnet_samsync_ldb.c
===================================================================
--- branches/SAMBA_4_0_RELEASE/source/libnet/libnet_samsync_ldb.c 2006-10-14 21:40:06 UTC (rev 19283)
+++ branches/SAMBA_4_0_RELEASE/source/libnet/libnet_samsync_ldb.c 2006-10-14 21:42:17 UTC (rev 19284)
@@ -427,14 +427,21 @@
if (ret != 0) {
struct ldb_dn *first_try_dn = msg->dn;
/* Try again with the default DN */
- msg->dn = talloc_steal(msg, msgs[0]->dn);
- ret = samdb_add(state->sam_ldb, mem_ctx, msg);
- if (ret != 0) {
- *error_string = talloc_asprintf(mem_ctx, "Failed to create user record. Tried both %s and %s: %s",
+ if (!remote_msgs) {
+ *error_string = talloc_asprintf(mem_ctx, "Failed to create user record. Tried %s: %s",
ldb_dn_linearize(mem_ctx, first_try_dn),
- ldb_dn_linearize(mem_ctx, msg->dn),
ldb_errstring(state->sam_ldb));
return NT_STATUS_INTERNAL_DB_CORRUPTION;
+ } else {
+ msg->dn = talloc_steal(msg, remote_msgs[0]->dn);
+ ret = samdb_add(state->sam_ldb, mem_ctx, msg);
+ if (ret != 0) {
+ *error_string = talloc_asprintf(mem_ctx, "Failed to create user record. Tried both %s and %s: %s",
+ ldb_dn_linearize(mem_ctx, first_try_dn),
+ ldb_dn_linearize(mem_ctx, msg->dn),
+ ldb_errstring(state->sam_ldb));
+ return NT_STATUS_INTERNAL_DB_CORRUPTION;
+ }
}
}
} else {
More information about the samba-cvs
mailing list