From 8ed0b6fb12fad93b250fc9e1db35e05adac4c89c Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Thu, 19 Feb 2026 00:14:57 +0300 Subject: [PATCH] rate-limiter. re-acquire lock after sleep to prevent use-after-free I thought rust fixed this... Signed-off-by: NotAShelf Change-Id: I3a2fe427cdc19a6317510e8736fe46d56a6a6964 --- src/rate_limiter.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/rate_limiter.rs b/src/rate_limiter.rs index 72dde8d..871c666 100644 --- a/src/rate_limiter.rs +++ b/src/rate_limiter.rs @@ -87,12 +87,14 @@ impl RateLimiter { if wait_time > Duration::ZERO { drop(inner); tokio::time::sleep(wait_time).await; + let mut inner = self.inner.lock().await; + let platform_requests = + inner.requests.entry(platform.to_string()).or_default(); + platform_requests.push(Instant::now()); + return Ok(()); } } - let mut inner = self.inner.lock().await; - let platform_requests = - inner.requests.entry(platform.to_string()).or_default(); platform_requests.push(Instant::now()); Ok(())