From 67bea1f103ca6a29500258f79b29cad6433407f2 Mon Sep 17 00:00:00 2001 From: Alex Vandiver Date: Wed, 5 Mar 2025 15:44:50 +0000 Subject: [PATCH] cache: validate_cache_key in cache_delete_many may get other prefixes. --- zerver/lib/cache.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zerver/lib/cache.py b/zerver/lib/cache.py index 2b650ce84d..c63c011bfb 100644 --- a/zerver/lib/cache.py +++ b/zerver/lib/cache.py @@ -199,8 +199,8 @@ def log_invalid_cache_keys(stack_trace: str, key: list[str]) -> None: ) -def validate_cache_key(key: str) -> None: - if not key.startswith(KEY_PREFIX): +def validate_cache_key(key: str, auto_prepend_prefix: bool = True) -> None: + if auto_prepend_prefix and not key.startswith(KEY_PREFIX): key = KEY_PREFIX + key # Theoretically memcached can handle non-ascii characters @@ -311,7 +311,7 @@ def cache_delete_many(items: Iterable[str], cache_name: str | None = None) -> No for key_prefix in get_all_cache_key_prefixes(): keys += [key_prefix + item for item in items] for key in keys: - validate_cache_key(key) + validate_cache_key(key, auto_prepend_prefix=False) remote_cache_stats_start() get_cache_backend(cache_name).delete_many(keys) remote_cache_stats_finish()