commit | 7b5b7cb63be71c9e7250dfece6401837f99ef4d7 | [log] [tgz] |
---|---|---|
author | Christopher Tate <ctate@google.com> | Thu Jul 07 14:41:36 2016 -0700 |
committer | Christopher Tate <ctate@google.com> | Thu Jul 07 14:52:09 2016 -0700 |
tree | 80cc9207d4a5e2a9ad723fff8bf4b2f4cdbef50e | |
parent | 07e234c9d7ecc9f2b8b7b7d1caf79ea2a920c7ea [diff] |
Don't walk mutexed collections outside the mutex In particular, don't call rescheduleKernelAlarmsLocked() without the lock held, or Bad Things will happen. Bug 29931253 Change-Id: I93a7f16d543b5af2adff27f949a68f3d54169285
diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java index 312553a..4dd88b2 100644 --- a/services/core/java/com/android/server/AlarmManagerService.java +++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -2547,7 +2547,9 @@ } else { // Just in case -- even though no wakeup flag was set, make sure // we have updated the kernel to the next alarm time. - rescheduleKernelAlarmsLocked(); + synchronized (mLock) { + rescheduleKernelAlarmsLocked(); + } } } }