Fix escaping of characters

\ and " in SSID and password cause issues
with netd parsing. Fix it.

Bug: 2708960
Change-Id: I278ca21c0bbfd9dc430a2f9ae02828274a0d2376
This commit is contained in:
Irfan Sheriff
2010-05-24 14:55:42 -07:00
parent c7c7afd7a1
commit a6e559edb7

View File

@@ -494,15 +494,20 @@ class NetworkManagementService extends INetworkManagementService.Stub {
* argv8 - Max SCB
*/
String str = String.format("softap set " + wlanIface + " " + softapIface +
" \"%s\" %s %s", wifiConfig.SSID,
" %s %s %s", convertQuotedString(wifiConfig.SSID),
wifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_PSK) ?
"wpa2-psk" : "open",
wifiConfig.preSharedKey);
convertQuotedString(wifiConfig.preSharedKey));
mConnector.doCommand(str);
}
mConnector.doCommand(String.format("softap startap"));
}
private String convertQuotedString(String s) {
/* Replace \ with \\, then " with \" and add quotes at end */
return '"' + s.replaceAll("\\\\","\\\\\\\\").replaceAll("\"","\\\\\"") + '"';
}
public void stopAccessPoint() throws IllegalStateException {
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.CHANGE_NETWORK_STATE, "NetworkManagementService");
@@ -521,10 +526,10 @@ class NetworkManagementService extends INetworkManagementService.Stub {
mConnector.doCommand(String.format("softap set " + wlanIface + " " + softapIface));
} else {
String str = String.format("softap set " + wlanIface + " " + softapIface +
" \"%s\" %s %s", wifiConfig.SSID,
" %s %s %s", convertQuotedString(wifiConfig.SSID),
wifiConfig.allowedKeyManagement.get(KeyMgmt.WPA_PSK) ?
"wpa2-psk" : "open",
wifiConfig.preSharedKey);
convertQuotedString(wifiConfig.preSharedKey));
mConnector.doCommand(str);
}
}