s3: fix guest auth when winbindd is running
commitfbf615dee95d13026fb9d092be8cf956c64eda75
authorSteven Danneman <steven.danneman@isilon.com>
Fri, 27 Feb 2009 16:32:51 +0000 (27 08:32 -0800)
committerJeremy Allison <jra@samba.org>
Fri, 27 Feb 2009 16:32:51 +0000 (27 08:32 -0800)
tree5fe8f072b28b7922c6530bf32ab245002a078dbb
parenteb02b1e7fe98f826606d0129b1ba172b8645207a
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