diff options
Diffstat (limited to 'source3/nsswitch/idmap_cache.c')
-rw-r--r-- | source3/nsswitch/idmap_cache.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source3/nsswitch/idmap_cache.c b/source3/nsswitch/idmap_cache.c index 6d23e75b2c..6e5febf2ba 100644 --- a/source3/nsswitch/idmap_cache.c +++ b/source3/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; |