diff options
author | Jeremy Allison <jra@samba.org> | 2010-11-09 15:07:49 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2010-11-10 01:14:17 +0000 |
commit | f0dcc90f726e1232a4e0b74a03784281ea9a7cdc (patch) | |
tree | f05f122e49e766b6267feb65dc1dc738d4fbd70f /source3/smbd/smb2_tcon.c | |
parent | 3878fa4c435140bd2e3c59f8bdb932fe19e4c13a (diff) | |
download | samba-f0dcc90f726e1232a4e0b74a03784281ea9a7cdc.tar.gz |
Fix bug 7781 - Samba transforms ShareName to lowercase (sharename) when adding new share via MMC
Change the find_service() interface to not depend on fstring, and
create a useable talloc-based interface.
Jeremy.
Diffstat (limited to 'source3/smbd/smb2_tcon.c')
-rw-r--r-- | source3/smbd/smb2_tcon.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/source3/smbd/smb2_tcon.c b/source3/smbd/smb2_tcon.c index 203325e71a4..82d9a280842 100644 --- a/source3/smbd/smb2_tcon.c +++ b/source3/smbd/smb2_tcon.c @@ -151,7 +151,7 @@ static NTSTATUS smbd_smb2_tree_connect(struct smbd_smb2_request *req, uint32_t *out_tree_id) { const char *share = in_path; - fstring service; + char *service = NULL; int snum = -1; struct smbd_smb2_tcon *tcon; connection_struct *compat_conn = NULL; @@ -169,7 +169,10 @@ static NTSTATUS smbd_smb2_tree_connect(struct smbd_smb2_request *req, DEBUG(10,("smbd_smb2_tree_connect: path[%s] share[%s]\n", in_path, share)); - fstrcpy(service, share); + service = talloc_strdup(talloc_tos(), share); + if(!service) { + return NT_STATUS_NO_MEMORY; + } strlower_m(service); @@ -189,7 +192,10 @@ static NTSTATUS smbd_smb2_tree_connect(struct smbd_smb2_request *req, lp_servicename(compat_vuser->homes_snum))) { snum = compat_vuser->homes_snum; } else { - snum = find_service(service); + snum = find_service(talloc_tos(), service, &service); + if (!service) { + return NT_STATUS_NO_MEMORY; + } } if (snum < 0) { |