This is an automated email from the ASF dual-hosted git repository.
absurdfarce pushed a commit to branch 4.x
in repository https://gitbox.apache.org/repos/asf/cassandra-java-driver.git
The following commit(s) were added to refs/heads/4.x by this push:
new 0115cd67c Prevent long overflow in SNI address resolution
0115cd67c is described below
commit 0115cd67c18835b89d8888d405d455045737a630
Author: Lukasz Antoniak <[email protected]>
AuthorDate: Fri Apr 11 13:19:45 2025 +0200
Prevent long overflow in SNI address resolution
patch by Lukasz Antoniak and Alexandre Dutra; reviewed by Bret McGuire
---
.../datastax/oss/driver/internal/core/metadata/SniEndPoint.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git
a/core/src/main/java/com/datastax/oss/driver/internal/core/metadata/SniEndPoint.java
b/core/src/main/java/com/datastax/oss/driver/internal/core/metadata/SniEndPoint.java
index ace4e8261..d1ab8eec9 100644
---
a/core/src/main/java/com/datastax/oss/driver/internal/core/metadata/SniEndPoint.java
+++
b/core/src/main/java/com/datastax/oss/driver/internal/core/metadata/SniEndPoint.java
@@ -26,10 +26,10 @@ import java.net.UnknownHostException;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Objects;
-import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.atomic.AtomicInteger;
public class SniEndPoint implements EndPoint {
- private static final AtomicLong OFFSET = new AtomicLong();
+ private static final AtomicInteger OFFSET = new AtomicInteger();
private final InetSocketAddress proxyAddress;
private final String serverName;
@@ -64,7 +64,10 @@ public class SniEndPoint implements EndPoint {
// The order of the returned address is unspecified. Sort by IP to make
sure we get a true
// round-robin
Arrays.sort(aRecords, IP_COMPARATOR);
- int index = (aRecords.length == 1) ? 0 : (int) OFFSET.getAndIncrement()
% aRecords.length;
+ int index =
+ (aRecords.length == 1)
+ ? 0
+ : OFFSET.getAndUpdate(x -> x == Integer.MAX_VALUE ? 0 : x + 1) %
aRecords.length;
return new InetSocketAddress(aRecords[index], proxyAddress.getPort());
} catch (UnknownHostException e) {
throw new IllegalArgumentException(
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]