From 49b58862b93d6b25eda2f94b071ca7d791468f4b Mon Sep 17 00:00:00 2001 From: Per Minborg Date: Thu, 10 Dec 2020 17:38:14 +0100 Subject: [PATCH] Prevent arithmetic operations from overflowing, Fix #244 --- pom.xml | 27 +++++++++++++++++++ .../hash/impl/VanillaChronicleHash.java | 2 +- .../hash/impl/stage/entry/SegmentStages.java | 2 +- .../impl/util/math/PoissonDistribution.java | 4 +-- .../chronicle/map/ReplicatedChronicleMap.java | 2 +- 5 files changed, 32 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 4960acf7d..71414243b 100644 --- a/pom.xml +++ b/pom.xml @@ -448,6 +448,33 @@ + + + org.jacoco + jacoco-maven-plugin + 0.8.6 + + + + prepare-agent + + + + report + prepare-package + + report + + + + + + + org.sonarsource.scanner.maven + sonar-maven-plugin + 3.7.0.1746 + + diff --git a/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java b/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java index a78ec3d1e..aa55b94cc 100644 --- a/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java +++ b/src/main/java/net/openhft/chronicle/hash/impl/VanillaChronicleHash.java @@ -449,7 +449,7 @@ public abstract class VanillaChronicleHash lower) { - lower = ((int) Math.ceil(tmp)) - 1; + lower = ((int) Math.ceil(tmp)) - 1L; } k = 1.0 / k; tmp = mu + k * sigma; if (tmp < upper) { - upper = ((int) Math.ceil(tmp)) - 1; + upper = ((int) Math.ceil(tmp)) - 1L; } } diff --git a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java index 08084f473..3f503ae26 100644 --- a/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java +++ b/src/main/java/net/openhft/chronicle/map/ReplicatedChronicleMap.java @@ -910,7 +910,7 @@ public class ReplicatedChronicleMap extends VanillaChronicleMap