mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
libnet dssync: fix memory allocation for error/result messages.
Use the libnet_dssync_context as a talloc context for the
result_message and error_message string members.
Using the passed in mem_ctx makes the implicit assumption
that mem_ctx is at least as long-lived as the libnet_dssync_context,
which is wrong.
Michael
(This used to be commit 635baf6b7d
)
This commit is contained in:
parent
4c6e9662b8
commit
84ee630ee9
@ -308,7 +308,7 @@ static NTSTATUS libnet_dssync_lookup_nc(TALLOC_CTX *mem_ctx,
|
||||
&ctr,
|
||||
&werr);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
ctx->error_message = talloc_asprintf(mem_ctx,
|
||||
ctx->error_message = talloc_asprintf(ctx,
|
||||
"Failed to lookup DN for domain name: %s",
|
||||
get_friendly_werror_msg(werr));
|
||||
return status;
|
||||
@ -525,7 +525,7 @@ static NTSTATUS libnet_dssync_getncchanges(TALLOC_CTX *mem_ctx,
|
||||
&ctr,
|
||||
&werr);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
ctx->error_message = talloc_asprintf(mem_ctx,
|
||||
ctx->error_message = talloc_asprintf(ctx,
|
||||
"Failed to get NC Changes: %s",
|
||||
get_friendly_werror_msg(werr));
|
||||
goto out;
|
||||
@ -600,7 +600,7 @@ static NTSTATUS libnet_dssync_getncchanges(TALLOC_CTX *mem_ctx,
|
||||
|
||||
status = cli_get_session_key(mem_ctx, ctx->cli, &ctx->session_key);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
ctx->error_message = talloc_asprintf(mem_ctx,
|
||||
ctx->error_message = talloc_asprintf(ctx,
|
||||
"Failed to get Session Key: %s",
|
||||
nt_errstr(status));
|
||||
goto out;
|
||||
@ -615,7 +615,7 @@ static NTSTATUS libnet_dssync_getncchanges(TALLOC_CTX *mem_ctx,
|
||||
first_object,
|
||||
mapping_ctr);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
ctx->error_message = talloc_asprintf(mem_ctx,
|
||||
ctx->error_message = talloc_asprintf(ctx,
|
||||
"Failed to call processing function: %s",
|
||||
nt_errstr(status));
|
||||
goto out;
|
||||
@ -644,7 +644,7 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx,
|
||||
|
||||
status = ctx->ops->startup(ctx, mem_ctx, &old_utdv);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
ctx->error_message = talloc_asprintf(mem_ctx,
|
||||
ctx->error_message = talloc_asprintf(ctx,
|
||||
"Failed to call startup operation: %s",
|
||||
nt_errstr(status));
|
||||
goto out;
|
||||
@ -670,7 +670,7 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx,
|
||||
status = libnet_dssync_getncchanges(mem_ctx, ctx, level, &req,
|
||||
&pnew_utdv);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
ctx->error_message = talloc_asprintf(mem_ctx,
|
||||
ctx->error_message = talloc_asprintf(ctx,
|
||||
"Failed to call DsGetNCCHanges: %s",
|
||||
nt_errstr(status));
|
||||
goto out;
|
||||
@ -679,7 +679,7 @@ static NTSTATUS libnet_dssync_process(TALLOC_CTX *mem_ctx,
|
||||
|
||||
status = ctx->ops->finish(ctx, mem_ctx, pnew_utdv);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
ctx->error_message = talloc_asprintf(mem_ctx,
|
||||
ctx->error_message = talloc_asprintf(ctx,
|
||||
"Failed to call finishing operation: %s",
|
||||
nt_errstr(status));
|
||||
goto out;
|
||||
|
@ -90,7 +90,7 @@ static NTSTATUS keytab_startup(struct dssync_context *ctx, TALLOC_CTX *mem_ctx,
|
||||
(ndr_pull_flags_fn_t)ndr_pull_replUpToDateVectorBlob);
|
||||
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
|
||||
NTSTATUS status = ndr_map_error2ntstatus(ndr_err);
|
||||
ctx->error_message = talloc_asprintf(mem_ctx,
|
||||
ctx->error_message = talloc_asprintf(ctx,
|
||||
"Failed to pull UpToDateVector: %s",
|
||||
nt_errstr(status));
|
||||
return status;
|
||||
@ -128,7 +128,7 @@ static NTSTATUS keytab_finish(struct dssync_context *ctx, TALLOC_CTX *mem_ctx,
|
||||
(ndr_push_flags_fn_t)ndr_push_replUpToDateVectorBlob);
|
||||
if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
|
||||
status = ndr_map_error2ntstatus(ndr_err);
|
||||
ctx->error_message = talloc_asprintf(mem_ctx,
|
||||
ctx->error_message = talloc_asprintf(ctx,
|
||||
"Failed to push UpToDateVector: %s",
|
||||
nt_errstr(status));
|
||||
goto done;
|
||||
@ -146,13 +146,13 @@ static NTSTATUS keytab_finish(struct dssync_context *ctx, TALLOC_CTX *mem_ctx,
|
||||
ret = libnet_keytab_add(keytab_ctx);
|
||||
if (ret) {
|
||||
status = krb5_to_nt_status(ret);
|
||||
ctx->error_message = talloc_asprintf(mem_ctx,
|
||||
ctx->error_message = talloc_asprintf(ctx,
|
||||
"Failed to add entries to keytab %s: %s",
|
||||
keytab_ctx->keytab_name, error_message(ret));
|
||||
goto done;
|
||||
}
|
||||
|
||||
ctx->result_message = talloc_asprintf(mem_ctx,
|
||||
ctx->result_message = talloc_asprintf(ctx,
|
||||
"Vampired %d accounts to keytab %s",
|
||||
keytab_ctx->count,
|
||||
keytab_ctx->keytab_name);
|
||||
|
Loading…
Reference in New Issue
Block a user