diff options
| author | 2020-06-12 00:14:51 +0000 | |
|---|---|---|
| committer | 2020-06-12 00:14:51 +0000 | |
| commit | dd9c140ef5d7df228b84cb48b0fc1ee6f118919e (patch) | |
| tree | e7e592d95f73a25cca620471dc99984e543dd1e7 | |
| parent | ebb1992cd01505e6467954ebdab68c86d5783454 (diff) | |
| parent | 945f31cc121426a2f00204a3edf6723413257dd5 (diff) | |
Merge "Fix content capture session id collision bug" into rvc-dev
| -rw-r--r-- | core/java/android/view/contentcapture/ContentCaptureSession.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/core/java/android/view/contentcapture/ContentCaptureSession.java b/core/java/android/view/contentcapture/ContentCaptureSession.java index 301ce9f013e4..3f5ef5a2651d 100644 --- a/core/java/android/view/contentcapture/ContentCaptureSession.java +++ b/core/java/android/view/contentcapture/ContentCaptureSession.java @@ -39,8 +39,8 @@ import com.android.internal.util.Preconditions; import java.io.PrintWriter; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.security.SecureRandom; import java.util.ArrayList; -import java.util.Random; /** * Session used when the Android a system-provided content capture service @@ -50,7 +50,9 @@ public abstract class ContentCaptureSession implements AutoCloseable { private static final String TAG = ContentCaptureSession.class.getSimpleName(); - private static final Random sIdGenerator = new Random(); + // TODO(b/158778794): to make the session ids truly globally unique across + // processes, we may need to explore other options. + private static final SecureRandom ID_GENERATOR = new SecureRandom(); /** * Initial state, when there is no session. @@ -622,7 +624,7 @@ public abstract class ContentCaptureSession implements AutoCloseable { private static int getRandomSessionId() { int id; do { - id = sIdGenerator.nextInt(); + id = ID_GENERATOR.nextInt(); } while (id == NO_SESSION_ID); return id; } |