diff options
author | Garming Sam <garming@catalyst.net.nz> | 2014-02-21 09:34:45 +1300 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2014-02-24 19:16:48 +0100 |
commit | 695ece206b3365c99499e424e0dba43ce5de9300 (patch) | |
tree | 09a4b1702d2d3ec94bfef847b728041634a8f328 | |
parent | d8d06193daad86ea7c38b78b5949d404eabb0636 (diff) | |
download | samba-695ece206b3365c99499e424e0dba43ce5de9300.tar.gz |
s4: tidy up vfs smb2 in regards to using share_string_option
Change-Id: Ieae6b5ddc2cd9983489c374605e4740371e81883
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Kamen Mazdrashki <kamenim@samba.org>
Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date(master): Mon Feb 24 19:16:48 CET 2014 on sn-devel-104
-rw-r--r-- | source4/ntvfs/smb2/vfs_smb2.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/source4/ntvfs/smb2/vfs_smb2.c b/source4/ntvfs/smb2/vfs_smb2.c index 705e5842ed7..a3a670a101e 100644 --- a/source4/ntvfs/smb2/vfs_smb2.c +++ b/source4/ntvfs/smb2/vfs_smb2.c @@ -185,8 +185,8 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs, sharename = tcon->smb2.in.path; break; default: - TALLOC_FREE(tmp_ctx); - return NT_STATUS_INVALID_LEVEL; + status = NT_STATUS_INVALID_LEVEL; + goto out; } if (strncmp(sharename, "\\\\", 2) == 0) { @@ -212,24 +212,24 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs, p = talloc_zero(ntvfs, struct cvfs_private); if (!p) { - TALLOC_FREE(tmp_ctx); - return NT_STATUS_NO_MEMORY; + status = NT_STATUS_NO_MEMORY; + goto out; } ntvfs->private_data = p; if (!host) { DEBUG(1,("CIFS backend: You must supply server\n")); - TALLOC_FREE(tmp_ctx); - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } if (user && pass) { DEBUG(5, ("CIFS backend: Using specified password\n")); credentials = cli_credentials_init(p); if (!credentials) { - TALLOC_FREE(tmp_ctx); - return NT_STATUS_NO_MEMORY; + status = NT_STATUS_NO_MEMORY; + goto out; } cli_credentials_set_conf(credentials, ntvfs->ctx->lp_ctx); cli_credentials_set_username(credentials, user, CRED_SPECIFIED); @@ -246,16 +246,15 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs, } status = cli_credentials_set_machine_account(credentials, ntvfs->ctx->lp_ctx); if (!NT_STATUS_IS_OK(status)) { - TALLOC_FREE(tmp_ctx); - return status; + goto out; } } else if (req->session_info->credentials) { DEBUG(5, ("CIFS backend: Using delegated credentials\n")); credentials = req->session_info->credentials; } else { DEBUG(1,("CIFS backend: NO delegated credentials found: You must supply server, user and password or the client must supply delegated credentials\n")); - TALLOC_FREE(tmp_ctx); - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } lpcfg_smbcli_options(ntvfs->ctx->lp_ctx, &options); @@ -270,14 +269,12 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs, lpcfg_socket_options(ntvfs->ctx->lp_ctx), lpcfg_gensec_settings(p, ntvfs->ctx->lp_ctx)); if (!NT_STATUS_IS_OK(status)) { - TALLOC_FREE(tmp_ctx); - return status; + goto out; } status = smb2_get_roothandle(tree, &p->roothandle); if (!NT_STATUS_IS_OK(status)) { - TALLOC_FREE(tmp_ctx); - return status; + goto out; } p->tree = tree; @@ -286,13 +283,13 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs, ntvfs->ctx->fs_type = talloc_strdup(ntvfs->ctx, "NTFS"); if (ntvfs->ctx->fs_type == NULL) { - TALLOC_FREE(tmp_ctx); - return NT_STATUS_NO_MEMORY; + status = NT_STATUS_NO_MEMORY; + goto out; } ntvfs->ctx->dev_type = talloc_strdup(ntvfs->ctx, "A:"); if (ntvfs->ctx->dev_type == NULL) { - TALLOC_FREE(tmp_ctx); - return NT_STATUS_NO_MEMORY; + status = NT_STATUS_NO_MEMORY; + goto out; } if (tcon->generic.level == RAW_TCON_TCONX) { @@ -305,8 +302,11 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs, smbcli_oplock_handler(p->transport, oplock_handler, p); */ + status = NT_STATUS_OK; + +out: TALLOC_FREE(tmp_ctx); - return NT_STATUS_OK; + return status; } /* |