diff options
author | Robin Lee <rgl@google.com> | 2015-03-10 12:34:28 +0000 |
---|---|---|
committer | Robin Lee <rgl@google.com> | 2015-03-10 16:27:43 +0000 |
commit | 68e4ba4dd0412f7923d3c22c92ebae485fc89961 (patch) | |
tree | 1d06fb3119119b1aca25758cd85603be7649808e /services | |
parent | f3ece36535d4999cf2bfd2175a33da6c3cdf298e (diff) | |
download | frameworks_base-68e4ba4dd0412f7923d3c22c92ebae485fc89961.zip frameworks_base-68e4ba4dd0412f7923d3c22c92ebae485fc89961.tar.gz frameworks_base-68e4ba4dd0412f7923d3c22c92ebae485fc89961.tar.bz2 |
Move more file handling into LockSettingsStorage
Strengthens the guarantee of only one kind of lock type existing at one
time by clearing all of the relevant files out closer to time of write.
Change-Id: I141103dab5d7d4bc80b05a22b8566326d1c9e7e1
Diffstat (limited to 'services')
-rw-r--r-- | services/core/java/com/android/server/LockSettingsStorage.java | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/LockSettingsStorage.java b/services/core/java/com/android/server/LockSettingsStorage.java index c03bb58..d81daa9 100644 --- a/services/core/java/com/android/server/LockSettingsStorage.java +++ b/services/core/java/com/android/server/LockSettingsStorage.java @@ -238,12 +238,21 @@ class LockSettingsStorage { public void writePatternHash(byte[] hash, int userId) { writeFile(getLockPatternFilename(userId), hash); + clearPasswordHash(userId); + } + + private void clearPatternHash(int userId) { + writeFile(getLockPatternFilename(userId), null); } public void writePasswordHash(byte[] hash, int userId) { writeFile(getLockPasswordFilename(userId), hash); + clearPatternHash(userId); } + private void clearPasswordHash(int userId) { + writeFile(getLockPasswordFilename(userId), null); + } @VisibleForTesting String getLockPatternFilename(int userId) { @@ -279,16 +288,15 @@ class LockSettingsStorage { return userId; } - public void removeUser(int userId) { SQLiteDatabase db = mOpenHelper.getWritableDatabase(); final UserManager um = (UserManager) mContext.getSystemService(USER_SERVICE); final UserInfo parentInfo = um.getProfileParent(userId); - synchronized (mFileWriteLock) { - if (parentInfo == null) { - // This user owns its lock settings files - safe to delete them + if (parentInfo == null) { + // This user owns its lock settings files - safe to delete them + synchronized (mFileWriteLock) { String name = getLockPasswordFilename(userId); File file = new File(name); if (file.exists()) { |