summaryrefslogtreecommitdiff
path: root/source4/libcli/cliconnect.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-09-27 08:41:39 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:59:21 -0500
commitaa12305945df5f1578250b56ae2f3653b051736f (patch)
tree30e072fca46873f0d59d736d65b96096326eec2a /source4/libcli/cliconnect.c
parent3aa3428bc93e6c8741b52eaa65d43f3a5abcee2e (diff)
downloadsamba-aa12305945df5f1578250b56ae2f3653b051736f.tar.gz
samba-aa12305945df5f1578250b56ae2f3653b051736f.tar.bz2
samba-aa12305945df5f1578250b56ae2f3653b051736f.zip
r2680: switched the libcli/raw/ code over to use talloc_reference(), which simplifies things quite a bit
(This used to be commit c82a9cf750829c4f6982ca3133295c8599023c4e)
Diffstat (limited to 'source4/libcli/cliconnect.c')
-rw-r--r--source4/libcli/cliconnect.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/source4/libcli/cliconnect.c b/source4/libcli/cliconnect.c
index f772070305..aa6aec4a1e 100644
--- a/source4/libcli/cliconnect.c
+++ b/source4/libcli/cliconnect.c
@@ -36,8 +36,8 @@ BOOL smbcli_socket_connect(struct smbcli_state *cli, const char *server)
}
cli->transport = smbcli_transport_init(sock);
+ talloc_free(sock);
if (!cli->transport) {
- talloc_free(sock);
return False;
}
@@ -60,9 +60,9 @@ NTSTATUS smbcli_negprot(struct smbcli_state *cli)
/* wrapper around smb_raw_session_setup() */
NTSTATUS smbcli_session_setup(struct smbcli_state *cli,
- const char *user,
- const char *password,
- const char *domain)
+ const char *user,
+ const char *password,
+ const char *domain)
{
union smb_sesssetup setup;
NTSTATUS status;
@@ -70,6 +70,7 @@ NTSTATUS smbcli_session_setup(struct smbcli_state *cli,
cli->session = smbcli_session_init(cli->transport);
if (!cli->session) return NT_STATUS_UNSUCCESSFUL;
+ talloc_free(cli->transport);
mem_ctx = talloc_init("smbcli_session_setup");
if (!mem_ctx) return NT_STATUS_NO_MEMORY;
@@ -110,6 +111,7 @@ NTSTATUS smbcli_send_tconX(struct smbcli_state *cli, const char *sharename,
NTSTATUS status;
cli->tree = smbcli_tree_init(cli->session);
+ talloc_free(cli->session);
if (!cli->tree) return NT_STATUS_UNSUCCESSFUL;
mem_ctx = talloc_init("tcon");
@@ -183,7 +185,8 @@ NTSTATUS smbcli_full_connection(struct smbcli_state **ret_cli,
(*ret_cli) = smbcli_state_init();
- (*ret_cli)->tree = tree;
+ (*ret_cli)->tree = talloc_reference(*ret_cli, tree);
+ talloc_free(tree);
(*ret_cli)->session = tree->session;
(*ret_cli)->transport = tree->session->transport;
@@ -221,7 +224,5 @@ struct smbcli_state *smbcli_state_init(void)
****************************************************************************/
void smbcli_shutdown(struct smbcli_state *cli)
{
- if (!cli) return;
- talloc_free(cli->tree);
talloc_free(cli);
}