diff options
author | Zoltan Szatmary-Ban <szatmz@google.com> | 2014-09-11 11:28:20 +0100 |
---|---|---|
committer | Zoltan Szatmary-Ban <szatmz@google.com> | 2014-09-11 11:28:20 +0100 |
commit | 35349352732fd6d889b8d718dd29f068ebbf1021 (patch) | |
tree | 922fe01bb05eaed7c276495168824b3b3274d795 /packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java | |
parent | c727fb1fc2a0653f2f1355c2f5aa826a3126dcc4 (diff) | |
download | frameworks_base-35349352732fd6d889b8d718dd29f068ebbf1021.zip frameworks_base-35349352732fd6d889b8d718dd29f068ebbf1021.tar.gz frameworks_base-35349352732fd6d889b8d718dd29f068ebbf1021.tar.bz2 |
Leave SettingsProvider running if cloning of a setting fails
Cloning of settings to managed profiles could fail due to security restrictions. This caused
Settings app crash. Instead the exception is now caught inside SettingsProvider, logged,
and we leave the app running.
Bug:17450158
Change-Id: I7525d634e57701db304117f4b2035faf53977836
Diffstat (limited to 'packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java')
-rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 4ef2189..30ccd2c 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -789,8 +789,15 @@ public class SettingsProvider extends ContentProvider { Slog.v(TAG, "putting to additional user " + mManagedProfiles.get(i).id); } - insertForUser(Settings.Secure.CONTENT_URI, values, - mManagedProfiles.get(i).id); + try { + insertForUser(Settings.Secure.CONTENT_URI, values, + mManagedProfiles.get(i).id); + } catch (SecurityException e) { + // Temporary fix, see b/17450158 + Slog.w(TAG, "Cannot clone request '" + request + "' with value '" + + newValue + "' to managed profile (id " + + mManagedProfiles.get(i).id + ")", e); + } } } finally { Binder.restoreCallingIdentity(token); |