diff options
Diffstat (limited to 'app/src/fil/libre/repwifiapp/network/WpaCli.java')
-rw-r--r-- | app/src/fil/libre/repwifiapp/network/WpaCli.java | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/app/src/fil/libre/repwifiapp/network/WpaCli.java b/app/src/fil/libre/repwifiapp/network/WpaCli.java index 10f6b7c..cdaba39 100644 --- a/app/src/fil/libre/repwifiapp/network/WpaCli.java +++ b/app/src/fil/libre/repwifiapp/network/WpaCli.java @@ -18,7 +18,6 @@ // // ******************************************************************** - package fil.libre.repwifiapp.network; import fil.libre.repwifiapp.helpers.Logger; @@ -58,8 +57,8 @@ public abstract class WpaCli { try { // needs root (wpa_cli) - return executeCmd(BASE_COMMAND + " set_network " + networkID + " ssid '\"" + ssid - + "\"'"); + return executeCmd(BASE_COMMAND + " set_network " + networkID + " ssid '\"" + + escapeSingleQuotes(ssid) + "\"'"); } catch (Exception e) { Logger.logError("Error while setting network SSID", e); @@ -73,11 +72,10 @@ public abstract class WpaCli { try { // needs root (wpa_cli) - - String cmdSetPass = null; + String cmdSetPass = null; if (info.needsPassword()) { cmdSetPass = BASE_COMMAND + " set_network " + networkID + " psk '\"" - + info.getPassword() + "\"'"; + + escapeSingleQuotes(info.getPassword()) + "\"'"; } else { cmdSetPass = BASE_COMMAND + " set_network " + networkID + " key_mgmt NONE"; } @@ -210,7 +208,7 @@ public abstract class WpaCli { try { return executeCmd(BASE_COMMAND + " disconnect"); - + } catch (Exception e) { Logger.logError("Error while enabling network", e); return false; @@ -219,18 +217,18 @@ public abstract class WpaCli { public static boolean terminateSupplicant() { - if (!WpaSupplicant.isRunning()){ + if (!WpaSupplicant.isRunning()) { return true; } try { return executeCmd(BASE_COMMAND + " terminate"); - + } catch (Exception e) { Logger.logError("Error while enabling network", e); return false; } - + } private static boolean executeCmd(String cmdTxt) throws Exception { @@ -249,4 +247,13 @@ public abstract class WpaCli { } + private static String escapeSingleQuotes(String target) { + + + if (target == null) + return ""; + + return target.replace("'", "'\"'\"'"); + } + } |