From 8a918b13a814ae8985e283aa42e68f32b677d8b1 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Wed, 6 Jul 2016 17:38:59 -0600 Subject: [PATCH] Snapshot RemoteViews before releasing lock. The MSG_NOTIFY_UPDATE_APP_WIDGET message is sent asynchronously, meaning it tries sending RemoteViews without the lock held, possibly while another Binder thread is trying to mutate it. Fix this by creating a copy for the thread to safely dispatch. Bug: 29889779 Change-Id: I341fbbf89abee97a66cd67f1dd2a728282b68bfa --- .../java/com/android/server/appwidget/AppWidgetServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java index feceb149ae3f..6defd0f5baef 100644 --- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java +++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java @@ -1905,7 +1905,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku SomeArgs args = SomeArgs.obtain(); args.arg1 = widget.host; args.arg2 = widget.host.callbacks; - args.arg3 = updateViews; + args.arg3 = updateViews.clone(); args.arg4 = requestTime; args.argi1 = widget.appWidgetId; -- 2.11.0