summaryrefslogtreecommitdiffstats
path: root/source/nsswitch/idmap_cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/nsswitch/idmap_cache.c')
-rw-r--r--source/nsswitch/idmap_cache.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/source/nsswitch/idmap_cache.c b/source/nsswitch/idmap_cache.c
index 13cb9f7eb97..689f363e535 100644
--- a/source/nsswitch/idmap_cache.c
+++ b/source/nsswitch/idmap_cache.c
@@ -109,6 +109,19 @@ NTSTATUS idmap_cache_set(struct idmap_cache_ctx *cache, const struct id_map *id)
char *idkey;
char *valstr;
+ /* Don't cache lookups in the S-1-22-{1,2} domain */
+ if ( (id->xid.type == ID_TYPE_UID) &&
+ sid_check_is_in_unix_users(id->sid) )
+ {
+ return NT_STATUS_OK;
+ }
+ if ( (id->xid.type == ID_TYPE_GID) &&
+ sid_check_is_in_unix_groups(id->sid) )
+ {
+ return NT_STATUS_OK;
+ }
+
+
ret = idmap_cache_build_sidkey(cache, &sidkey, id);
if (!NT_STATUS_IS_OK(ret)) return ret;