summaryrefslogtreecommitdiff
path: root/source3/winbindd/winbindd_cache.c
diff options
context:
space:
mode:
authorKarolin Seeger <kseeger@samba.org>2008-06-16 15:21:28 +0200
committerKarolin Seeger <kseeger@samba.org>2008-06-16 15:21:28 +0200
commit13eab02679a012b332beed28b0a4fc05cb9fd258 (patch)
treec85fa485e37a22ff945d2f0a83db8ac6534b3c0a /source3/winbindd/winbindd_cache.c
parentfdcf760d1c3bd83570f55972930226ecbc5e028b (diff)
downloadsamba-13eab02679a012b332beed28b0a4fc05cb9fd258.tar.gz
samba-13eab02679a012b332beed28b0a4fc05cb9fd258.tar.bz2
samba-13eab02679a012b332beed28b0a4fc05cb9fd258.zip
winbind cache: Don't create SN cache entries during name-to-sid queries.
Clients can request name-to-sid queries for different combinations of upper and lower case names. We don't want to create the reverse caching entries for each combination used. This avoids inconsistent answers on sid-to-name queries. Please review! Karolin (This used to be commit b58e4f6b3d73294d8448c0dff4341183c52e5b7c)
Diffstat (limited to 'source3/winbindd/winbindd_cache.c')
-rw-r--r--source3/winbindd/winbindd_cache.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/source3/winbindd/winbindd_cache.c b/source3/winbindd/winbindd_cache.c
index 60403717c1..03512b9745 100644
--- a/source3/winbindd/winbindd_cache.c
+++ b/source3/winbindd/winbindd_cache.c
@@ -1451,13 +1451,13 @@ do_query:
if (domain->online &&
(NT_STATUS_IS_OK(status) || NT_STATUS_EQUAL(status, NT_STATUS_NONE_MAPPED))) {
wcache_save_name_to_sid(domain, status, domain_name, name, sid, *type);
+
+ /* Don't add SN cache entries for sid-to-name queries during this operation.
+ * It leads to inconsistent answers during sid-to-name queries as the
+ * client can ask for different combinations of lower case and upper case
+ * names in these name-to-sid queries.
+ */
- /* Only save the reverse mapping if this was not a UPN */
- if (!strchr(name, '@')) {
- strupper_m(CONST_DISCARD(char *,domain_name));
- strlower_m(CONST_DISCARD(char *,name));
- wcache_save_sid_to_name(domain, status, sid, domain_name, name, *type);
- }
}
return status;