From b6584d0a5aa4ed832c4ce7b2d107b5bbe6cb48a9 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Fri, 8 Jun 2018 13:18:07 -0700 Subject: [PATCH] Check wifi password length by byte, not char. Change-Id: Ie6dc441780660c52ff01a2bced79a4e95200d731 Fixes: 79209073 Test: robotest --- src/com/android/settings/wifi/WifiUtils.java | 7 +++++-- .../src/com/android/settings/wifi/WifiUtilsTest.java | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/wifi/WifiUtils.java b/src/com/android/settings/wifi/WifiUtils.java index 1e8308b9607..ff8570e7a59 100644 --- a/src/com/android/settings/wifi/WifiUtils.java +++ b/src/com/android/settings/wifi/WifiUtils.java @@ -26,6 +26,8 @@ import android.net.wifi.WifiConfiguration; import android.provider.Settings; import android.text.TextUtils; +import java.nio.charset.StandardCharsets; + public class WifiUtils { private static final int SSID_ASCII_MIN_LENGTH = 1; @@ -38,7 +40,7 @@ public class WifiUtils { if (TextUtils.isEmpty(ssid)) { return false; } - return ssid.length() > SSID_ASCII_MAX_LENGTH; + return ssid.getBytes(StandardCharsets.UTF_8).length > SSID_ASCII_MAX_LENGTH; } public static boolean isSSIDTooShort(String ssid) { @@ -59,8 +61,9 @@ public class WifiUtils { /** * This method is a stripped and negated version of WifiConfigStore.canModifyNetwork. + * * @param context Context of caller - * @param config The WiFi config. + * @param config The WiFi config. * @return true if Settings cannot modify the config due to lockDown. */ public static boolean isNetworkLockedDown(Context context, WifiConfiguration config) { diff --git a/tests/robotests/src/com/android/settings/wifi/WifiUtilsTest.java b/tests/robotests/src/com/android/settings/wifi/WifiUtilsTest.java index 1f49654c402..806399d191f 100644 --- a/tests/robotests/src/com/android/settings/wifi/WifiUtilsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/WifiUtilsTest.java @@ -29,7 +29,7 @@ public class WifiUtilsTest { @Test public void testSSID() { assertThat(WifiUtils.isSSIDTooLong("123")).isFalse(); - assertThat(WifiUtils.isSSIDTooLong("☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎")).isTrue(); + assertThat(WifiUtils.isSSIDTooLong("☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎")).isTrue(); assertThat(WifiUtils.isSSIDTooShort("123")).isFalse(); assertThat(WifiUtils.isSSIDTooShort("")).isTrue();