diff options
author | Gerald Carter <jerry@samba.org> | 2003-10-20 16:50:14 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2003-10-20 16:50:14 +0000 |
commit | bfcb776abd1ead323963912efef2641e0bc41a03 (patch) | |
tree | 5b493e2b7f6e1bc4078fca8a452ceff03c9df17e /source3/smbd/sesssetup.c | |
parent | 1db4a703a8aa1caf53da68a9dd085b6ff0a25505 (diff) | |
download | samba-bfcb776abd1ead323963912efef2641e0bc41a03.tar.gz samba-bfcb776abd1ead323963912efef2641e0bc41a03.tar.bz2 samba-bfcb776abd1ead323963912efef2641e0bc41a03.zip |
more 2.2.x compatibility fixes - allow user looksup in the kerb5
sesssetup to fall back to 'user' instaed of failing is REA.LM\user
doesn't exist.
also fix include line in smb_acls.h as requested by metze
(This used to be commit 5ccf6baad7ffb1f992aaf24b41ef5c83362cf613)
Diffstat (limited to 'source3/smbd/sesssetup.c')
-rw-r--r-- | source3/smbd/sesssetup.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c index 427caa3ba1..945855b832 100644 --- a/source3/smbd/sesssetup.c +++ b/source3/smbd/sesssetup.c @@ -198,28 +198,25 @@ static int reply_spnego_kerberos(connection_struct *conn, /* this gives a fully qualified user name (ie. with full realm). that leads to very long usernames, but what else can we do? */ - asprintf(&user, "%s%s%s", p+1, lp_winbind_separator(), client); + + asprintf(&user, "%s%c%s", p+1, *lp_winbind_separator(), client); - pw = Get_Pwnam(user); - if (!pw && !foreign) { - pw = Get_Pwnam(client); - SAFE_FREE(user); - user = smb_xstrdup(client); - } - + pw = smb_getpwnam( user ); + + SAFE_FREE(user); SAFE_FREE(client); - /* setup the string used by %U */ - sub_set_smb_name(user); - - reload_services(True); - if (!pw) { DEBUG(1,("Username %s is invalid on this system\n",user)); data_blob_free(&ap_rep); return ERROR_NT(NT_STATUS_LOGON_FAILURE); } + /* setup the string used by %U */ + + sub_set_smb_name(pw->pw_name); + reload_services(True); + if (!NT_STATUS_IS_OK(ret = make_server_info_pw(&server_info,pw))) { DEBUG(1,("make_server_info_from_pw failed!\n")); data_blob_free(&ap_rep); |