summaryrefslogtreecommitdiffstats
path: root/service
diff options
context:
space:
mode:
authorVinit Deshpande <vinitd@google.com>2015-01-09 11:10:52 -0800
committerVinit Deshpande <vinitd@google.com>2015-01-09 11:10:52 -0800
commit537324a497615d07b67ba4582e9aaababd77afd6 (patch)
tree1b56608bcc4ccf9074fb33cfc069c3dc8da3c81b /service
parent2c9b6297f3cd74780a084634320d03a413a3b779 (diff)
downloadandroid_frameworks_opt_net_wifi-537324a497615d07b67ba4582e9aaababd77afd6.tar.gz
android_frameworks_opt_net_wifi-537324a497615d07b67ba4582e9aaababd77afd6.tar.bz2
android_frameworks_opt_net_wifi-537324a497615d07b67ba4582e9aaababd77afd6.zip
Fix an NPE in WifiConfigStore
Disabling an invalid configuration causes Wifi service to crash. This change gaurds against bad API call. Bug: 18904771 Change-Id: I8d853b754cbd4163c17f3d53bf81dc7625c95466
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WifiConfigStore.java22
1 files changed, 12 insertions, 10 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigStore.java b/service/java/com/android/server/wifi/WifiConfigStore.java
index ab29bcfc2..f347d56d7 100644
--- a/service/java/com/android/server/wifi/WifiConfigStore.java
+++ b/service/java/com/android/server/wifi/WifiConfigStore.java
@@ -1219,17 +1219,19 @@ public class WifiConfigStore extends IpConfigStore {
/* Only change the reason if the network was not previously disabled
/* and the reason is not DISABLED_BY_WIFI_MANAGER, that is, if a 3rd party
* set its configuration as disabled, then leave it disabled */
- if (config != null && config.status != Status.DISABLED
+ if (config != null) {
+ if (config.status != Status.DISABLED
&& config.disableReason != WifiConfiguration.DISABLED_BY_WIFI_MANAGER) {
- config.status = Status.DISABLED;
- config.disableReason = reason;
- network = config;
- }
- if (reason == WifiConfiguration.DISABLED_BY_WIFI_MANAGER) {
- // Make sure autojoin wont reenable this configuration without further user
- // intervention
- config.status = Status.DISABLED;
- config.autoJoinStatus = WifiConfiguration.AUTO_JOIN_DISABLED_USER_ACTION;
+ config.status = Status.DISABLED;
+ config.disableReason = reason;
+ network = config;
+ }
+ if (reason == WifiConfiguration.DISABLED_BY_WIFI_MANAGER) {
+ // Make sure autojoin wont reenable this configuration without further user
+ // intervention
+ config.status = Status.DISABLED;
+ config.autoJoinStatus = WifiConfiguration.AUTO_JOIN_DISABLED_USER_ACTION;
+ }
}
if (network != null) {
sendConfiguredNetworksChangedBroadcast(network,