From 91df7978799e5a24a73d8e1ae344e532e572f2dd Mon Sep 17 00:00:00 2001 From: Koushik Thirupattur Date: Tue, 8 Jul 2025 18:24:26 +0000 Subject: [PATCH] 8357915: SecureRandom nextLong memory usage Reviewed-by: wetmore --- .../share/classes/java/security/SecureRandom.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/java.base/share/classes/java/security/SecureRandom.java b/src/java.base/share/classes/java/security/SecureRandom.java index e53341be9da..53fdd3070d8 100644 --- a/src/java.base/share/classes/java/security/SecureRandom.java +++ b/src/java.base/share/classes/java/security/SecureRandom.java @@ -25,6 +25,7 @@ package java.security; +import jdk.internal.util.ByteArray; import sun.security.jca.GetInstance; import sun.security.jca.GetInstance.Instance; import sun.security.jca.Providers; @@ -837,6 +838,16 @@ public class SecureRandom extends java.util.Random { return next >>> (numBytes*8 - numBits); } + /** + * {@inheritDoc} + */ + @Override + public long nextLong() { + byte[] b = new byte[8]; + nextBytes(b); // Calls engineNextBytes internally + return ByteArray.getLong(b, 0); + } + /** * Returns the given number of seed bytes, computed using the seed * generation algorithm that this class uses to seed itself. This