wifi: Fix StringIndexOutOfBoundsException for incorrectly encoded SSIDs
If the last character of a SSID is a unescaped backslash then WifiSsid convertToBytes() will throw a StringIndexOutOfBoundsException and takes the whole ROM down. The issue was reported by andreip in the HTC One X XDA thread. His SSID was set to "/ Andrew \". 04-10 21:33:54.265 E/AndroidRuntime(10479): *** FATAL EXCEPTION IN SYSTEM PROCESS: WifiStateMachine 04-10 21:33:54.265 E/AndroidRuntime(10479): java.lang.StringIndexOutOfBoundsException: length=10; index=10 04-10 21:33:54.265 E/AndroidRuntime(10479): at android.net.wifi.WifiSsid.convertToBytes(WifiSsid.java:89) 04-10 21:33:54.265 E/AndroidRuntime(10479): at android.net.wifi.WifiSsid.createFromAsciiEncoded(WifiSsid.java:54) 04-10 21:33:54.265 E/AndroidRuntime(10479): at android.net.wifi.WifiStateMachine.setScanResults(WifiStateMachine.java:1522) 04-10 21:33:54.265 E/AndroidRuntime(10479): at android.net.wifi.WifiStateMachine.access$7100(WifiStateMachine.java:103) 04-10 21:33:54.265 E/AndroidRuntime(10479): at android.net.wifi.WifiStateMachine$SupplicantStartedState.processMessage(WifiStateMachine.java:2511) 04-10 21:33:54.265 E/AndroidRuntime(10479): at com.android.internal.util.StateMachine$SmHandler.processMsg(StateMachine.java:905) 04-10 21:33:54.265 E/AndroidRuntime(10479): at com.android.internal.util.StateMachine$SmHandler.handleMessage(StateMachine.java:760) 04-10 21:33:54.265 E/AndroidRuntime(10479): at android.os.Handler.dispatchMessage(Handler.java:99) 04-10 21:33:54.265 E/AndroidRuntime(10479): at android.os.Looper.loop(Looper.java:137) 04-10 21:33:54.265 E/AndroidRuntime(10479): at android.os.HandlerThread.run(HandlerThread.java:60) Change-Id: I8273decacfffea4e4cae3bb957c925833dab09e2
Loading
Please register or sign in to comment