From af1e3a32841243d8cd43bf86628ecb37fa539091 Mon Sep 17 00:00:00 2001 From: Slendy Date: Mon, 31 Oct 2022 20:51:00 -0500 Subject: [PATCH] Add more existence checks to rate limiter --- ProjectLighthouse/Middlewares/RateLimitMiddleware.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ProjectLighthouse/Middlewares/RateLimitMiddleware.cs b/ProjectLighthouse/Middlewares/RateLimitMiddleware.cs index 9fbfb736..c4a6132b 100644 --- a/ProjectLighthouse/Middlewares/RateLimitMiddleware.cs +++ b/ProjectLighthouse/Middlewares/RateLimitMiddleware.cs @@ -104,9 +104,13 @@ public class RateLimitMiddleware : MiddlewareDBContext for (int i = recentRequests.Count - 1; i >= 0; i--) { IPAddress address = recentRequests.ElementAt(i).Key; - recentRequests[address].RemoveAll(r => TimeHelper.TimestampMillis > r.Expiration); - // Remove empty entries - if (recentRequests[address].Count == 0) recentRequests.TryRemove(address, out _); + bool exists = recentRequests.TryGetValue(address, out List? requests); + if (!exists || recentRequests[address].Count == 0) + { + recentRequests.TryRemove(address, out _); + continue; + } + requests?.RemoveAll(r => TimeHelper.TimestampMillis > r.Expiration); } }