From 34d77e73ff20ddf9d3787356b02a84d7a49b344c Mon Sep 17 00:00:00 2001 From: Katherine Yen Date: Tue, 16 May 2023 14:34:06 -0700 Subject: [PATCH] Fix integer division in call link ratelimit leak rate --- .../textsecuregcm/limits/RateLimiterConfig.java | 5 +++++ .../whispersystems/textsecuregcm/limits/RateLimiters.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiterConfig.java b/service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiterConfig.java index a469a3144..9530eccb5 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiterConfig.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiterConfig.java @@ -6,6 +6,11 @@ package org.whispersystems.textsecuregcm.limits; public record RateLimiterConfig(int bucketSize, double leakRatePerMinute) { + public RateLimiterConfig { + if (leakRatePerMinute <= 0) { + throw new IllegalArgumentException("leakRatePerMinute cannot be less than or equal to zero"); + } + } public double leakRatePerMillis() { return leakRatePerMinute / (60.0 * 1000.0); diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiters.java b/service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiters.java index 6d6860e30..3ad20b4d7 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiters.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/limits/RateLimiters.java @@ -74,7 +74,7 @@ public class RateLimiters extends BaseRateLimiters { PUSH_CHALLENGE_SUCCESS("pushChallengeSuccess", true, new RateLimiterConfig(2, 2.0 / (60 * 24))), - CREATE_CALL_LINK("createCallLink", false, new RateLimiterConfig(100, 100 / (60 * 24))); + CREATE_CALL_LINK("createCallLink", false, new RateLimiterConfig(100, 100.0 / (60 * 24))); ; private final String id;