am c9754740: Merge "fix crash on invalid base64 key" into lmp-mr1-dev
* commit 'c9754740a804bb6ed870dcf6ab0cb40490551b09': fix crash on invalid base64 key
This commit is contained in:
@@ -207,7 +207,12 @@ public class UsbDebuggingManager implements Runnable {
|
||||
|
||||
case MESSAGE_ADB_CONFIRM: {
|
||||
String key = (String)msg.obj;
|
||||
mFingerprints = getFingerprints(key);
|
||||
String fingerprints = getFingerprints(key);
|
||||
if ("".equals(fingerprints)) {
|
||||
sendResponse("NO");
|
||||
break;
|
||||
}
|
||||
mFingerprints = fingerprints;
|
||||
startConfirmation(key, mFingerprints);
|
||||
break;
|
||||
}
|
||||
@@ -224,16 +229,25 @@ public class UsbDebuggingManager implements Runnable {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
MessageDigest digester;
|
||||
|
||||
if (key == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
try {
|
||||
digester = MessageDigest.getInstance("MD5");
|
||||
} catch (Exception ex) {
|
||||
Slog.e(TAG, "Error getting digester: " + ex);
|
||||
Slog.e(TAG, "Error getting digester", ex);
|
||||
return "";
|
||||
}
|
||||
|
||||
byte[] base64_data = key.split("\\s+")[0].getBytes();
|
||||
byte[] digest = digester.digest(Base64.decode(base64_data, Base64.DEFAULT));
|
||||
|
||||
byte[] digest;
|
||||
try {
|
||||
digest = digester.digest(Base64.decode(base64_data, Base64.DEFAULT));
|
||||
} catch (IllegalArgumentException e) {
|
||||
Slog.e(TAG, "error doing base64 decoding", e);
|
||||
return "";
|
||||
}
|
||||
for (int i = 0; i < digest.length; i++) {
|
||||
sb.append(hex.charAt((digest[i] >> 4) & 0xf));
|
||||
sb.append(hex.charAt(digest[i] & 0xf));
|
||||
|
||||
Reference in New Issue
Block a user