From 08a8c4371af1a03115d748dd80df478e0afdd60c Mon Sep 17 00:00:00 2001 From: Varun Shah Date: Sat, 6 May 2023 00:13:39 +0000 Subject: [PATCH] Ensure only valid events are reported. When CHOOSER_ACTION events are reported via reportChooserSelection, make sure the package name is not null and is also a valid, installed package. Bug: 229633537 Bug: 253403242 Test: atest UsageStatsTest Change-Id: Ib28014f2d21b451d2f7f6e7136f500fc49d0779b --- .../com/android/server/usage/UsageStatsService.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java index a98429ad4902f..72f2c1ddfc771 100644 --- a/services/usage/java/com/android/server/usage/UsageStatsService.java +++ b/services/usage/java/com/android/server/usage/UsageStatsService.java @@ -2539,10 +2539,14 @@ public class UsageStatsService extends SystemService implements } @Override - public void reportChooserSelection(String packageName, int userId, String contentType, - String[] annotations, String action) { + public void reportChooserSelection(@NonNull String packageName, int userId, + String contentType, String[] annotations, String action) { if (packageName == null) { - Slog.w(TAG, "Event report user selecting a null package"); + throw new IllegalArgumentException("Package selection must not be null."); + } + // Verify if this package exists before reporting an event for it. + if (mPackageManagerInternal.getPackageUid(packageName, 0, userId) < 0) { + Slog.w(TAG, "Event report user selecting an invalid package"); return; }