Merge "Prevent multi-threaded access to digest object" into nyc-dev

am: 92cfb7f

* commit '92cfb7fc27455a487a93675aa0154bfd5b689096':
  Prevent multi-threaded access to digest object
This commit is contained in:
Hall Liu
2016-03-17 22:29:27 +00:00
committed by android-build-merger

View File

@@ -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";
}
}
}