svn commit: samba r9452 - in branches/SOC/SAMBA_4_0: .
source/libnet source/utils/net
brad at samba.org
brad at samba.org
Sun Aug 21 17:33:51 GMT 2005
Author: brad
Date: 2005-08-21 17:33:51 +0000 (Sun, 21 Aug 2005)
New Revision: 9452
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9452
Log:
r5508 at buttercup: j0j0 | 2005-08-21 11:40:36 -0600
Bugfixes, trying to get things straight between contexts.
Modified:
branches/SOC/SAMBA_4_0/
branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c
branches/SOC/SAMBA_4_0/source/utils/net/net_join.c
Changeset:
Property changes on: branches/SOC/SAMBA_4_0
___________________________________________________________________
Name: svk:merge
- 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:9397
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5506
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5497
+ 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:9397
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/SAMBA_4_0:5508
d349723c-e9fc-0310-b8a8-fdedf1c27407:/local/samba-SAMBA_4_0:5497
Modified: branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c
===================================================================
--- branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c 2005-08-21 17:20:34 UTC (rev 9451)
+++ branches/SOC/SAMBA_4_0/source/libnet/libnet_join.c 2005-08-21 17:33:51 UTC (rev 9452)
@@ -82,7 +82,6 @@
const char *domain_name;
const char *realm = NULL; /* Also flag for remote being AD */
-
tmp_ctx = talloc_named(mem_ctx, 0, "libnet_Join temp context");
if (!tmp_ctx) {
r->out.error_string = NULL;
@@ -172,12 +171,12 @@
talloc_free(tmp_ctx);
return status;
}
- domain_sid = lsa_query_info.out.info->domain.sid;
- domain_name = lsa_query_info.out.info->domain.name.string;
+ domain_sid = talloc_steal(mem_ctx,lsa_query_info.out.info->domain.sid);
+ domain_name = talloc_asprintf(mem_ctx,"%s",lsa_query_info.out.info->domain.name.string);
r->out.domain_sid = talloc_steal(mem_ctx, domain_sid);
- r->out.domain_name = talloc_steal(mem_ctx, domain_name);
- r->out.realm = talloc_steal(mem_ctx, realm);
+ r->out.domain_name = talloc_asprintf(mem_ctx, "%s", domain_name);
+ r->out.realm = talloc_asprintf(mem_ctx, "%s", realm);
/*
establish a SAMR connection, on the same CIFS transport
@@ -432,7 +431,7 @@
r->out.realm = NULL;
r->out.kvno = 0;
-
+ r->out.error_string = NULL;
talloc_free(tmp_ctx);
return NT_STATUS_OK;
@@ -444,9 +443,9 @@
NTSTATUS status;
- const char *realm = r->out.realm;
+ const char *realm = talloc_asprintf(mem_ctx, "%s", r->out.realm);
- struct dcerpc_binding *samr_binding = r->out.samr_binding;
+ struct dcerpc_binding *samr_binding = talloc_steal(mem_ctx, r->out.samr_binding);
struct dcerpc_pipe *drsuapi_pipe;
struct dcerpc_binding *drsuapi_binding;
@@ -646,10 +645,11 @@
}
}
-/* testing
+/* testing*/
+ r->out.error_string = NULL;
talloc_free(tmp_ctx);
-*/
+
return NT_STATUS_OK;
}
@@ -702,23 +702,22 @@
r2.in.level = r->in.level;
status = libnet_JoinDomain(ctx, mem_ctx, &r2);
- r->out.error_string = r2.out.error_string;
+ r->out.error_string = talloc_steal(mem_ctx, r2.out.error_string);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
+ r->out.samr_pipe = talloc_steal(mem_ctx, r2.out.samr_pipe);
+ r->out.user_handle = talloc_steal(mem_ctx, r2.out.user_handle);
+ r->out.domain_sid = talloc_steal(mem_ctx, r2.out.domain_sid);
+ r->out.join_password = talloc_steal(mem_ctx, r2.out.join_password);
/*
- r->out.samr_pipe = r2.out.samr_pipe;
- r->out.user_handle = r2.out.user_handle;
- r->out.domain_sid = r2.out.domain_sid;
- r->out.join_password = r2.out.join_password;
- */
r2.out.samr_pipe = talloc_steal(mem_ctx, r->out.samr_pipe);
r2.out.user_handle = talloc_steal(mem_ctx, r->out.user_handle);
r2.out.domain_sid = talloc_steal(mem_ctx, r->out.domain_sid);
r2.out.join_password = talloc_steal(mem_ctx, r->out.join_password);
-
+ */
sct = talloc_asprintf(mem_ctx, "%d", r->in.secure_channel_type);
msg = ldb_msg_new(mem_ctx);
@@ -794,16 +793,18 @@
{
NTSTATUS nt_status;
- struct libnet_Join r2;
+ struct libnet_Join *r2;
- r2.in.level = r->in.level;
- r2.in.secure_channel_type = r->in.secure_channel_type;
- r2.in.domain_name = r->in.domain_name;
- r2.in.netbios_name = r->in.netbios_name;
+ r2 = talloc(mem_ctx, struct libnet_Join);
+ r2->in.level = r->in.level;
+ r2->in.secure_channel_type = r->in.secure_channel_type;
+ r2->in.domain_name = r->in.domain_name;
+ r2->in.netbios_name = r->in.netbios_name;
+
if ((r->in.secure_channel_type == SEC_CHAN_WKSTA)
|| (r->in.secure_channel_type == SEC_CHAN_BDC)) {
- nt_status = libnet_Join_primary_domain(ctx, mem_ctx, &r2);
+ nt_status = libnet_Join_primary_domain(ctx, mem_ctx, r2);
} else {
r->out.error_string
= talloc_asprintf(mem_ctx, "Invalid secure channel type specified (%08X) attempting to join domain %s",
@@ -811,11 +812,11 @@
return NT_STATUS_INVALID_PARAMETER;
}
- r->out.error_string = r2.out.error_string;
- r->out.join_password = r2.out.join_password;
- r->out.domain_sid = r2.out.domain_sid;
- r->out.samr_pipe = r2.out.samr_pipe;
- r->out.user_handle = r2.out.user_handle;
+ r->out.error_string = talloc_asprintf(mem_ctx, "%s", r2->out.error_string);
+ r->out.join_password = talloc_steal(mem_ctx, r2->out.join_password);
+ r->out.domain_sid = talloc_steal(mem_ctx, r2->out.domain_sid);
+ r->out.samr_pipe = talloc_steal(mem_ctx, r2->out.samr_pipe);
+ r->out.user_handle = talloc_steal(mem_ctx, r2->out.user_handle);
return nt_status;
}
Modified: branches/SOC/SAMBA_4_0/source/utils/net/net_join.c
===================================================================
--- branches/SOC/SAMBA_4_0/source/utils/net/net_join.c 2005-08-21 17:20:34 UTC (rev 9451)
+++ branches/SOC/SAMBA_4_0/source/utils/net/net_join.c 2005-08-21 17:33:51 UTC (rev 9452)
@@ -67,7 +67,12 @@
r.in.domain_name = domain_name;
r.in.secure_channel_type = secure_channel_type;
r.out.error_string = NULL;
-
+ r.in.level = LIBNET_JOIN_AUTOMATIC;
+ /*
+ Valgrind complains if we don't set netbios_name to null here.
+ */
+ r.in.netbios_name = NULL;
+
/* do the domain join */
status = libnet_Join(libnetctx, ctx->mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
More information about the samba-cvs
mailing list