From 8c86f395be220c16434b3c1b1d657d1d6795dda8 Mon Sep 17 00:00:00 2001 From: Ryan Mitchell Date: Thu, 12 Aug 2021 09:36:53 -0700 Subject: [PATCH] Guard against null info when applying widget RROs Add null checks to applyResourceOverlaysToWidgetsLocked to protect against a widget provider component info being null. Fixes: 196231621 Fixes: 196331791 Test: none Change-Id: Ia762694523404ac508eb49600306048037f13658 --- .../com/android/server/appwidget/AppWidgetServiceImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java index a56b1db1494c8..c32543ae5c13d 100644 --- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java +++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java @@ -3306,11 +3306,12 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku Slog.w(TAG, "Failed to retrieve app info for " + packageName + " userId=" + userId, e); } - if (newAppInfo == null) { + if (newAppInfo == null || provider.info == null + || provider.info.providerInfo == null) { continue; } ApplicationInfo oldAppInfo = provider.info.providerInfo.applicationInfo; - if (!newAppInfo.sourceDir.equals(oldAppInfo.sourceDir)) { + if (oldAppInfo == null || !newAppInfo.sourceDir.equals(oldAppInfo.sourceDir)) { // Overlay paths are generated against a particular version of an application. // The overlays paths of a newly upgraded application are incompatible with the // old version of the application.