summaryrefslogtreecommitdiff
path: root/source3/smbd/sesssetup.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2010-11-09 12:07:25 -0800
committerJeremy Allison <jra@samba.org>2010-11-10 01:14:17 +0000
commit9997ee813b8ceeb7016355bbc07651db7f6b2d5a (patch)
treea82115ab85000f85e26aca4edd94d4f237c0619c /source3/smbd/sesssetup.c
parent692a7477dd3b1a40df58de09a02754dbaecb07d6 (diff)
downloadsamba-9997ee813b8ceeb7016355bbc07651db7f6b2d5a.tar.gz
samba-9997ee813b8ceeb7016355bbc07651db7f6b2d5a.tar.bz2
samba-9997ee813b8ceeb7016355bbc07651db7f6b2d5a.zip
Remove fstring from map_username. Create a more sane interface than the called-parameter-is-modified.
Jeremy.
Diffstat (limited to 'source3/smbd/sesssetup.c')
-rw-r--r--source3/smbd/sesssetup.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c
index f9e49461cc..12d046038c 100644
--- a/source3/smbd/sesssetup.c
+++ b/source3/smbd/sesssetup.c
@@ -1546,13 +1546,20 @@ void reply_sesssetup_and_X(struct smb_request *req)
reload_services(sconn->msg_ctx, sconn->sock, True);
if (lp_security() == SEC_SHARE) {
+ char *sub_user_mapped = NULL;
/* In share level we should ignore any passwords */
data_blob_free(&lm_resp);
data_blob_free(&nt_resp);
data_blob_clear_free(&plaintext_password);
- map_username(sub_user);
+ (void)map_username(talloc_tos(), sub_user, &sub_user_mapped);
+ if (!sub_user_mapped) {
+ reply_nterror(req, NT_STATUS_NO_MEMORY);
+ END_PROFILE(SMBsesssetupX);
+ return;
+ }
+ fstrcpy(sub_user, sub_user_mapped);
add_session_user(sconn, sub_user);
add_session_workgroup(sconn, domain);
/* Then force it to null for the benfit of the code below */