From 7b5b7cb63be71c9e7250dfece6401837f99ef4d7 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Thu, 7 Jul 2016 14:41:36 -0700 Subject: [PATCH] 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 --- .../core/java/com/android/server/AlarmManagerService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java index 312553a980b2a..4dd88b20fb7f1 100644 --- a/services/core/java/com/android/server/AlarmManagerService.java +++ b/services/core/java/com/android/server/AlarmManagerService.java @@ -2547,7 +2547,9 @@ class AlarmManagerService extends SystemService { } 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(); + } } } }