Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e66c031d authored by Nick Kralevich's avatar Nick Kralevich Committed by Android Git Automerger
Browse files

am c9754740: Merge "fix crash on invalid base64 key" into lmp-mr1-dev

* commit 'c9754740':
  fix crash on invalid base64 key
parents 99453e57 c9754740
Loading
Loading
Loading
Loading
+18 −4
Original line number Diff line number Diff line
@@ -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));