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

Commit a6e559ed authored by Irfan Sheriff's avatar Irfan Sheriff
Browse files

Fix escaping of characters

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

Bug: 2708960
Change-Id: I278ca21c0bbfd9dc430a2f9ae02828274a0d2376
parent c7c7afd7
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -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);
        }
    }