diff options
author | Günther Deschner <gd@samba.org> | 2008-06-25 00:21:37 +0200 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2008-06-25 09:51:31 +0200 |
commit | 92bd665aea68ee8d198f72c95af5da487efcfc36 (patch) | |
tree | 62db2b32e94a20743b91fa0fa87872b46bf8fd15 /source3/rpc_client/cli_pipe.c | |
parent | da70f8ab1ec840bbdcc73c22c4d4c54705c83980 (diff) | |
download | samba-92bd665aea68ee8d198f72c95af5da487efcfc36.tar.gz samba-92bd665aea68ee8d198f72c95af5da487efcfc36.tar.bz2 samba-92bd665aea68ee8d198f72c95af5da487efcfc36.zip |
rpc_client: let cli_get_session_key() return talloced session key.
Thanks, Volker, for pointing this out.
Guenther
(This used to be commit b47899195e0c190445953243fe80da4e92994dd1)
Diffstat (limited to 'source3/rpc_client/cli_pipe.c')
-rw-r--r-- | source3/rpc_client/cli_pipe.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index 469142d146..da81417220 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -3341,7 +3341,8 @@ struct rpc_pipe_client *cli_rpc_pipe_open_krb5(struct cli_state *cli, #endif } -NTSTATUS cli_get_session_key(struct rpc_pipe_client *cli, +NTSTATUS cli_get_session_key(TALLOC_CTX *mem_ctx, + struct rpc_pipe_client *cli, DATA_BLOB *session_key) { if (!session_key || !cli) { @@ -3354,15 +3355,20 @@ NTSTATUS cli_get_session_key(struct rpc_pipe_client *cli, switch (cli->auth->auth_type) { case PIPE_AUTH_TYPE_SCHANNEL: - *session_key = data_blob(cli->auth->a_u.schannel_auth->sess_key, 16); + *session_key = data_blob_talloc(mem_ctx, + cli->auth->a_u.schannel_auth->sess_key, 16); break; case PIPE_AUTH_TYPE_NTLMSSP: case PIPE_AUTH_TYPE_SPNEGO_NTLMSSP: - *session_key = cli->auth->a_u.ntlmssp_state->session_key; + *session_key = data_blob_talloc(mem_ctx, + cli->auth->a_u.ntlmssp_state->session_key.data, + cli->auth->a_u.ntlmssp_state->session_key.length); break; case PIPE_AUTH_TYPE_KRB5: case PIPE_AUTH_TYPE_SPNEGO_KRB5: - *session_key = cli->auth->a_u.kerberos_auth->session_key; + *session_key = data_blob_talloc(mem_ctx, + cli->auth->a_u.kerberos_auth->session_key.data, + cli->auth->a_u.kerberos_auth->session_key.length); break; case PIPE_AUTH_TYPE_NONE: default: |