From: Jeremy Allison Date: Wed, 27 Aug 2008 01:05:34 +0000 (-0700) Subject: Fix bug spotted by Simo - don't use legacy if expired entry. X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a7bbd33139c5835cf32efdbe0ef187117699e3e4;p=thirdparty%2Fsamba.git Fix bug spotted by Simo - don't use legacy if expired entry. Jeremy. --- diff --git a/source/passdb/lookup_sid.c b/source/passdb/lookup_sid.c index a5e33628820..3861c8e229c 100644 --- a/source/passdb/lookup_sid.c +++ b/source/passdb/lookup_sid.c @@ -1296,7 +1296,7 @@ void uid_to_sid(DOM_SID *psid, uid_t uid) /* Check the winbindd cache directly. */ ret = idmap_cache_find_uid2sid(uid, psid, &expired); - if (ret && is_null_sid(psid)) { + if (ret && !expired && is_null_sid(psid)) { /* * Negative cache entry, we already asked. * do legacy. @@ -1342,7 +1342,7 @@ void gid_to_sid(DOM_SID *psid, gid_t gid) /* Check the winbindd cache directly. */ ret = idmap_cache_find_gid2sid(gid, psid, &expired); - if (ret && is_null_sid(psid)) { + if (ret && !expired && is_null_sid(psid)) { /* * Negative cache entry, we already asked. * do legacy. @@ -1405,7 +1405,7 @@ bool sid_to_uid(const DOM_SID *psid, uid_t *puid) /* Check the winbindd cache directly. */ ret = idmap_cache_find_sid2uid(psid, puid, &expired); - if (ret && (*puid == (uid_t)-1)) { + if (ret && !expired && (*puid == (uid_t)-1)) { /* * Negative cache entry, we already asked. * do legacy. @@ -1469,7 +1469,7 @@ bool sid_to_gid(const DOM_SID *psid, gid_t *pgid) /* Check the winbindd cache directly. */ ret = idmap_cache_find_sid2gid(psid, pgid, &expired); - if (ret && (*pgid == (gid_t)-1)) { + if (ret && !expired && (*pgid == (gid_t)-1)) { /* * Negative cache entry, we already asked. * do legacy.