summaryrefslogtreecommitdiff
path: root/source3/winbindd/winbindd_misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/winbindd/winbindd_misc.c')
-rw-r--r--source3/winbindd/winbindd_misc.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/source3/winbindd/winbindd_misc.c b/source3/winbindd/winbindd_misc.c
index 737fd08d2a..4109adb14b 100644
--- a/source3/winbindd/winbindd_misc.c
+++ b/source3/winbindd/winbindd_misc.c
@@ -209,8 +209,7 @@ static void listent_recv(void *private_data, bool success, fstring dom_name,
/* Return list of all users/groups to the client */
if (state->extra_data) {
- state->cli_state->response.extra_data.data =
- SMB_STRDUP(state->extra_data);
+ state->cli_state->response.extra_data.data = state->extra_data;
state->cli_state->response.length += state->extra_data_len;
}
@@ -334,14 +333,13 @@ void winbindd_list_trusted_domains(struct winbindd_cli_state *state)
}
if (extra_data_len > 0) {
- state->response.extra_data.data = SMB_STRDUP(extra_data);
+ state->response.extra_data.data = extra_data;
state->response.length += extra_data_len+1;
}
request_ok(state);
done:
TALLOC_FREE( dom_list );
- TALLOC_FREE( extra_data );
}
enum winbindd_result winbindd_dual_list_trusted_domains(struct winbindd_domain *domain,
@@ -409,7 +407,7 @@ enum winbindd_result winbindd_dual_list_trusted_domains(struct winbindd_domain *
}
if (extra_data_len > 0) {
- state->response.extra_data.data = SMB_STRDUP(extra_data);
+ state->response.extra_data.data = extra_data;
state->response.length += extra_data_len+1;
}
@@ -607,8 +605,7 @@ static void sequence_recv(void *private_data, bool success)
cli_state->response.length =
sizeof(cli_state->response) +
strlen(state->extra_data) + 1;
- cli_state->response.extra_data.data =
- SMB_STRDUP(state->extra_data);
+ cli_state->response.extra_data.data = state->extra_data;
request_ok(cli_state);
return;
}
@@ -782,16 +779,13 @@ void winbindd_netbios_name(struct winbindd_cli_state *state)
void winbindd_priv_pipe_dir(struct winbindd_cli_state *state)
{
-
+ char *priv_dir;
DEBUG(3, ("[%5lu]: request location of privileged pipe\n",
(unsigned long)state->pid));
- state->response.extra_data.data = SMB_STRDUP(get_winbind_priv_pipe_dir());
- if (!state->response.extra_data.data) {
- DEBUG(0, ("malloc failed\n"));
- request_error(state);
- return;
- }
+ priv_dir = get_winbind_priv_pipe_dir();
+ state->response.extra_data.data = talloc_move(state->mem_ctx,
+ &priv_dir);
/* must add one to length to copy the 0 for string termination */
state->response.length +=