From f0dcc90f726e1232a4e0b74a03784281ea9a7cdc Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 9 Nov 2010 15:07:49 -0800 Subject: 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. --- source3/smbd/smb2_tcon.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'source3/smbd/smb2_tcon.c') diff --git a/source3/smbd/smb2_tcon.c b/source3/smbd/smb2_tcon.c index 203325e71a..82d9a28084 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) { -- cgit