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

Commit 08adf4c2 authored by Weng Su's avatar Weng Su
Browse files

Ignore CRLF strings in display SSIDs to avoid display errors

- Keep user-entered SSIDs in Wi-Fi Configuration

- Ignore CRLF strings in display SSIDs only

Bug: 224545390
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=AddAppNetworksFragmentTest

Change-Id: Ifc081f9c5c02b2d70412f296688b88e44e893add
parent 2f79c879
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ import android.os.SimpleClock;
import android.os.SystemClock;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.EventLog;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -518,7 +519,13 @@ public class AddAppNetworksFragment extends InstrumentedFragment implements

        UiConfigurationItem(String displayedSsid, WifiNetworkSuggestion wifiNetworkSuggestion,
                int index, int level) {
            if (displayedSsid.contains("\n") || displayedSsid.contains("\r")) {
                mDisplayedSsid = displayedSsid.replaceAll("\\r|\\n", "");
                Log.e(TAG, "Ignore CRLF strings in display SSIDs to avoid display errors!");
                EventLog.writeEvent(0x534e4554, "224545390", -1 /* UID */, "CRLF injection");
            } else {
                mDisplayedSsid = displayedSsid;
            }
            mWifiNetworkSuggestion = wifiNetworkSuggestion;
            mIndex = index;
            mLevel = level;
+30 −0
Original line number Diff line number Diff line
@@ -455,6 +455,36 @@ public class AddAppNetworksFragmentTest {
                AddAppNetworksFragment.MESSAGE_SHOW_SAVE_FAILED)).isTrue();
    }

    @Test
    public void uiConfigurationItem_putCrToDisplayedSsid_shouldRemoveCr() {
        String testSsid = "\r" + FAKE_NEW_WPA_SSID + "\r";

        AddAppNetworksFragment.UiConfigurationItem item =
                new AddAppNetworksFragment.UiConfigurationItem(testSsid, null, 0, 0);

        assertThat(item.mDisplayedSsid).isEqualTo(FAKE_NEW_WPA_SSID);
    }

    @Test
    public void uiConfigurationItem_putLfToDisplayedSsid_shouldRemoveLf() {
        String testSsid = "\n" + FAKE_NEW_WPA_SSID + "\n";

        AddAppNetworksFragment.UiConfigurationItem item =
                new AddAppNetworksFragment.UiConfigurationItem(testSsid, null, 0, 0);

        assertThat(item.mDisplayedSsid).isEqualTo(FAKE_NEW_WPA_SSID);
    }

    @Test
    public void uiConfigurationItem_putCrLfToDisplayedSsid_shouldRemoveCrLf() {
        String testSsid = "\r\n" + FAKE_NEW_WPA_SSID + "\r\n";

        AddAppNetworksFragment.UiConfigurationItem item =
                new AddAppNetworksFragment.UiConfigurationItem(testSsid, null, 0, 0);

        assertThat(item.mDisplayedSsid).isEqualTo(FAKE_NEW_WPA_SSID);
    }

    private void setUpOneScannedNetworkWithScanedLevel4() {
        final ArrayList list = new ArrayList<>();
        list.add(mWifiEntry);