summaryrefslogtreecommitdiff
path: root/source3/lib/netapi/joindomain.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-01-08 15:43:11 +0100
committerJelmer Vernooij <jelmer@samba.org>2008-01-08 15:43:11 +0100
commitbfab6ab14bd2ba69fde8bbe32f56f308010c8ea7 (patch)
tree4edbacab40c67bb5d9d6bebe66a22949349cbf9a /source3/lib/netapi/joindomain.c
parent8dbeca6e9d06d573adebe8d9c5114b24d8782e43 (diff)
parent62c91987d902d4dfe27023ff2ec2fb73e602105b (diff)
downloadsamba-bfab6ab14bd2ba69fde8bbe32f56f308010c8ea7.tar.gz
samba-bfab6ab14bd2ba69fde8bbe32f56f308010c8ea7.tar.bz2
samba-bfab6ab14bd2ba69fde8bbe32f56f308010c8ea7.zip
Merge branch 'v3-2-test' of ssh://git.samba.org/data/git/samba into v3-2-test
(This used to be commit ea36c3add588061cf338deabb2d8952f2213a8bd)
Diffstat (limited to 'source3/lib/netapi/joindomain.c')
-rw-r--r--source3/lib/netapi/joindomain.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/source3/lib/netapi/joindomain.c b/source3/lib/netapi/joindomain.c
index c7849c952f..e4fb63eebb 100644
--- a/source3/lib/netapi/joindomain.c
+++ b/source3/lib/netapi/joindomain.c
@@ -33,13 +33,13 @@ static WERROR NetJoinDomainLocal(struct libnetapi_ctx *mem_ctx,
struct libnet_JoinCtx *r = NULL;
WERROR werr;
- werr = libnet_init_JoinCtx(mem_ctx, &r);
- W_ERROR_NOT_OK_RETURN(werr);
-
if (!domain_name) {
return WERR_INVALID_PARAM;
}
+ werr = libnet_init_JoinCtx(mem_ctx, &r);
+ W_ERROR_NOT_OK_RETURN(werr);
+
r->in.domain_name = talloc_strdup(mem_ctx, domain_name);
W_ERROR_HAVE_NO_MEMORY(r->in.domain_name);
@@ -77,7 +77,13 @@ static WERROR NetJoinDomainLocal(struct libnetapi_ctx *mem_ctx,
r->in.join_flags = join_flags;
r->in.modify_config = true;
- return libnet_Join(mem_ctx, r);
+ werr = libnet_Join(mem_ctx, r);
+ if (!W_ERROR_IS_OK(werr) && r->out.error_string) {
+ libnetapi_set_error_string(mem_ctx, r->out.error_string);
+ }
+ TALLOC_FREE(r);
+
+ return werr;
}
static WERROR NetJoinDomainRemote(struct libnetapi_ctx *ctx,
@@ -431,9 +437,9 @@ static WERROR NetGetJoinInformationLocal(struct libnetapi_ctx *ctx,
uint16_t *name_type)
{
if ((lp_security() == SEC_ADS) && lp_realm()) {
- *name_buffer = SMB_STRDUP(lp_realm());
+ *name_buffer = talloc_strdup(ctx, lp_realm());
} else {
- *name_buffer = SMB_STRDUP(lp_workgroup());
+ *name_buffer = talloc_strdup(ctx, lp_workgroup());
}
if (!*name_buffer) {
return WERR_NOMEM;