Merge "Prevent multi-threaded access to digest object" into nyc-dev
This commit is contained in:
@@ -44,6 +44,7 @@ final public class Log {
|
|||||||
public static final boolean ERROR = isLoggable(android.util.Log.ERROR);
|
public static final boolean ERROR = isLoggable(android.util.Log.ERROR);
|
||||||
|
|
||||||
private static MessageDigest sMessageDigest;
|
private static MessageDigest sMessageDigest;
|
||||||
|
private static final Object sMessageDigestLock = new Object();
|
||||||
|
|
||||||
private Log() {}
|
private Log() {}
|
||||||
|
|
||||||
@@ -57,7 +58,9 @@ final public class Log {
|
|||||||
} catch (NoSuchAlgorithmException e) {
|
} catch (NoSuchAlgorithmException e) {
|
||||||
md = null;
|
md = null;
|
||||||
}
|
}
|
||||||
sMessageDigest = md;
|
synchronized (sMessageDigestLock) {
|
||||||
|
sMessageDigest = md;
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}.execute();
|
}.execute();
|
||||||
@@ -187,13 +190,15 @@ final public class Log {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static String secureHash(byte[] input) {
|
private static String secureHash(byte[] input) {
|
||||||
if (sMessageDigest != null) {
|
synchronized (sMessageDigestLock) {
|
||||||
sMessageDigest.reset();
|
if (sMessageDigest != null) {
|
||||||
sMessageDigest.update(input);
|
sMessageDigest.reset();
|
||||||
byte[] result = sMessageDigest.digest();
|
sMessageDigest.update(input);
|
||||||
return encodeHex(result);
|
byte[] result = sMessageDigest.digest();
|
||||||
} else {
|
return encodeHex(result);
|
||||||
return "Uninitialized SHA1";
|
} else {
|
||||||
|
return "Uninitialized SHA1";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user