From f703acd4a26eb2a7c844739fc6d1b63cfa860bcd Mon Sep 17 00:00:00 2001 From: Aki Tuomi Date: Wed, 2 Mar 2022 15:40:16 +0200 Subject: [PATCH] auth: auth-cache - Always use translated_username as cache key This fixes auth cache when passdb/userdb changes the user field. --- src/auth/auth-cache.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/auth/auth-cache.c b/src/auth/auth-cache.c index 9d9e292af1..e8aa10573c 100644 --- a/src/auth/auth-cache.c +++ b/src/auth/auth-cache.c @@ -384,7 +384,7 @@ auth_cache_lookup(struct auth_cache *cache, const struct auth_request *request, *expired_r = FALSE; *neg_expired_r = FALSE; - key = auth_request_expand_cache_key(request, key, request->fields.user); + key = auth_request_expand_cache_key(request, key, request->fields.translated_username); node = hash_table_lookup(cache->hash, key); if (node == NULL) { cache->miss_count++; @@ -421,7 +421,6 @@ void auth_cache_insert(struct auth_cache *cache, struct auth_request *request, { struct auth_cache_node *node; size_t data_size, alloc_size, key_len, value_len = strlen(value); - const char *cache_username; char *hash_key; if (*value == '\0' && cache->neg_ttl_secs == 0) { @@ -429,15 +428,7 @@ void auth_cache_insert(struct auth_cache *cache, struct auth_request *request, return; } - /* store into cache using the translated username, except if we're doing - a master user login */ - cache_username = request->fields.user; - if (request->fields.translated_username != NULL && - request->fields.requested_login_user == NULL && - request->fields.master_user == NULL) - cache_username = request->fields.translated_username; - - key = auth_request_expand_cache_key(request, key, cache_username); + key = auth_request_expand_cache_key(request, key, request->fields.translated_username); key_len = strlen(key); data_size = key_len + 1 + value_len + 1; -- 2.47.3