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