Prevent multicast addresses in static Wifi config.
Change-Id: I1961b10d67d322fb863620813fe9039b63bb7895
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 54bd3d0..ee6b503 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -682,7 +682,7 @@
if (TextUtils.isEmpty(ipAddr)) return R.string.wifi_ip_settings_invalid_ip_address;
Inet4Address inetAddr = getIPv4Address(ipAddr);
- if (inetAddr == null) {
+ if (inetAddr == null || inetAddr.equals(Inet4Address.ANY)) {
return R.string.wifi_ip_settings_invalid_ip_address;
}
@@ -697,6 +697,8 @@
// Set the hint as default after user types in ip address
mNetworkPrefixLengthView.setText(mConfigUi.getContext().getString(
R.string.wifi_network_prefix_length_hint));
+ } catch (IllegalArgumentException e) {
+ return R.string.wifi_ip_settings_invalid_ip_address;
}
String gateway = mGatewayView.getText().toString();
@@ -715,6 +717,9 @@
if (gatewayAddr == null) {
return R.string.wifi_ip_settings_invalid_gateway;
}
+ if (gatewayAddr.isMulticastAddress()) {
+ return R.string.wifi_ip_settings_invalid_gateway;
+ }
staticIpConfiguration.gateway = gatewayAddr;
}