summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2010-08-18 16:07:39 -0700
committerIrfan Sheriff <isheriff@google.com>2010-08-18 16:07:39 -0700
commit6118069b1dc4c487d02d3df5b883e756dc42b605 (patch)
tree743618f56c53914696a2ef381e2569e1827695c1 /services
parent468c3230dafc2d131bdeded7b5a6825988166244 (diff)
downloadframeworks_base-6118069b1dc4c487d02d3df5b883e756dc42b605.zip
frameworks_base-6118069b1dc4c487d02d3df5b883e756dc42b605.tar.gz
frameworks_base-6118069b1dc4c487d02d3df5b883e756dc42b605.tar.bz2
Fix WRITE_SECURE_SETTINGS permission issue
The refactor with the new state machine had introduced a bug with writes to secure settings in public API for which apps might not have permission. Bug: 2895750 Change-Id: I7d236253201a47b836996859aa3de2806ad8a800
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/WifiService.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java
index 064d47f..59846b9 100644
--- a/services/java/com/android/server/WifiService.java
+++ b/services/java/com/android/server/WifiService.java
@@ -405,7 +405,14 @@ public class WifiService extends IWifiManager.Stub {
}
mWifiStateMachine.setWifiEnabled(enable);
+
+ /*
+ * Caller might not have WRITE_SECURE_SETTINGS,
+ * only CHANGE_WIFI_STATE is enforced
+ */
+ long ident = Binder.clearCallingIdentity();
persistWifiEnabled(enable);
+ Binder.restoreCallingIdentity(ident);
if (enable) {
if (!mIsReceiverRegistered) {
@@ -451,7 +458,13 @@ public class WifiService extends IWifiManager.Stub {
wifiConfig.SSID = mContext.getString(R.string.wifi_tether_configure_ssid_default);
wifiConfig.allowedKeyManagement.set(KeyMgmt.NONE);
}
+ /*
+ * Caller might not have WRITE_SECURE_SETTINGS,
+ * only CHANGE_WIFI_STATE is enforced
+ */
+ long ident = Binder.clearCallingIdentity();
setWifiApConfiguration(wifiConfig);
+ Binder.restoreCallingIdentity(ident);
}
mWifiStateMachine.setWifiApEnabled(wifiConfig, enabled);