summaryrefslogtreecommitdiff
path: root/telecomm/java/android/telecom/Log.java
diff options
context:
space:
mode:
authorHall Liu <hallliu@google.com>2016-03-17 11:27:55 -0700
committerHall Liu <hallliu@google.com>2016-03-17 11:27:55 -0700
commit792ad96eea1ad10da3a65f2655c194a544f49939 (patch)
tree5bd5067a17c7997a799bb5645eca07d1c06324f5 /telecomm/java/android/telecom/Log.java
parentd3eb078ac7aa1a046d1b23519d91ac0c8d3241bc (diff)
Prevent multi-threaded access to digest object
Bug: 27717431 Change-Id: I3ebd1dda7386c35078c0624df1446e64c3fb0aa0
Diffstat (limited to 'telecomm/java/android/telecom/Log.java')
-rw-r--r--telecomm/java/android/telecom/Log.java21
1 files changed, 13 insertions, 8 deletions
diff --git a/telecomm/java/android/telecom/Log.java b/telecomm/java/android/telecom/Log.java
index 2ab0525a33c4..a965342982f5 100644
--- a/telecomm/java/android/telecom/Log.java
+++ b/telecomm/java/android/telecom/Log.java
@@ -44,6 +44,7 @@ final public class Log {
public static final boolean ERROR = isLoggable(android.util.Log.ERROR);
private static MessageDigest sMessageDigest;
+ private static final Object sMessageDigestLock = new Object();
private Log() {}
@@ -57,7 +58,9 @@ final public class Log {
} catch (NoSuchAlgorithmException e) {
md = null;
}
- sMessageDigest = md;
+ synchronized (sMessageDigestLock) {
+ sMessageDigest = md;
+ }
return null;
}
}.execute();
@@ -187,13 +190,15 @@ final public class Log {
}
private static String secureHash(byte[] input) {
- if (sMessageDigest != null) {
- sMessageDigest.reset();
- sMessageDigest.update(input);
- byte[] result = sMessageDigest.digest();
- return encodeHex(result);
- } else {
- return "Uninitialized SHA1";
+ synchronized (sMessageDigestLock) {
+ if (sMessageDigest != null) {
+ sMessageDigest.reset();
+ sMessageDigest.update(input);
+ byte[] result = sMessageDigest.digest();
+ return encodeHex(result);
+ } else {
+ return "Uninitialized SHA1";
+ }
}
}