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

Commit f2c01041 authored by xinhe's avatar xinhe
Browse files

Boot loop when SSID has non UTF-8 character in the name

b/22773761

Change-Id: I44c8a19c11470ab16baf27eef252097690ef5d4a
parent 4604c1dc
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -363,11 +363,10 @@ public class ScanResult implements Parcelable {
    }

    /** {@hide} */
    public ScanResult(WifiSsid wifiSsid, String BSSID, String caps, int level, int frequency,
    public ScanResult(String Ssid, String BSSID, String caps, int level, int frequency,
            long tsf, int distCm, int distSdCm, int channelWidth, int centerFreq0, int centerFreq1,
            boolean is80211McRTTResponder) {
        this.wifiSsid = wifiSsid;
        this.SSID = (wifiSsid != null) ? wifiSsid.toString() : WifiSsid.NONE;
        this.SSID = Ssid;
        this.BSSID = BSSID;
        this.capabilities = caps;
        this.level = level;
@@ -385,6 +384,15 @@ public class ScanResult implements Parcelable {
        }
    }

    /** {@hide} */
    public ScanResult(WifiSsid wifiSsid, String Ssid, String BSSID, String caps, int level,
                  int frequency, long tsf, int distCm, int distSdCm, int channelWidth,
                  int centerFreq0, int centerFreq1, boolean is80211McRTTResponder) {
        this(Ssid, BSSID, caps,level, frequency, tsf, distCm, distSdCm, channelWidth, centerFreq0,
                centerFreq1, is80211McRTTResponder);
        this.wifiSsid = wifiSsid;
    }

    /** copy constructor {@hide} */
    public ScanResult(ScanResult source) {
        if (source != null) {
@@ -469,6 +477,7 @@ public class ScanResult implements Parcelable {
        } else {
            dest.writeInt(0);
        }
        dest.writeString(SSID);
        dest.writeString(BSSID);
        dest.writeString(capabilities);
        dest.writeInt(level);
@@ -512,6 +521,7 @@ public class ScanResult implements Parcelable {
                }
                ScanResult sr = new ScanResult(
                    wifiSsid,
                    in.readString(),                    /* SSID  */
                    in.readString(),                    /* BSSID */
                    in.readString(),                    /* capabilities */
                    in.readInt(),                       /* level */
+0 −2
Original line number Diff line number Diff line
@@ -255,9 +255,7 @@ public class WifiScanner {
            mResults = new ScanResult[s.mResults.length];
            for (int i = 0; i < s.mResults.length; i++) {
                ScanResult result = s.mResults[i];
                WifiSsid wifiSsid = WifiSsid.createFromAsciiEncoded(result.SSID);
                ScanResult newResult = new ScanResult(result);
                newResult.wifiSsid = wifiSsid;
                mResults[i] = newResult;
            }
        }