s3: fix guest auth when winbindd is running
commit671812696217fe1337562b661d5131be79797f1c
authorSteven Danneman <steven.danneman@isilon.com>
Fri, 27 Feb 2009 16:35:18 +0000 (27 08:35 -0800)
committerJeremy Allison <jra@samba.org>
Fri, 27 Feb 2009 16:35:18 +0000 (27 08:35 -0800)
tree21a7fe2f39ecf8a4107769d6358506b5bf6a80aa
parent5fb3b5e903c08013074ba473399ddee30f6c328f
s3: fix guest auth when winbindd is running

This fix is very subtle.  If a server is configured with "security = share"
and "guest ok = yes" and winbindd is running authorization will fail during
tree connect.

This is due to our inability to map the guest sid S-1-5-21-X-501 to a uid
through sid_to_uid().  Winbindd is unaware of the hard coded mapping
between this sid and whatever uid the name in lp_guestaccount() is assigned.
So sid_to_uid() fails and we exit create_token_from_username() without
ever calling pdb_getsampwsid() which IS aware of the hard coded mapping.

This patch just reorganizes the code, moving sid_to_uid() down to the
block of code in which it is needed, avoiding this early failure.
source/auth/auth_util.c