Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0fc48e3 authored by Varun Shah's avatar Varun Shah
Browse files

Ensure only valid events are reported.

When CHOOSER_ACTION events are reported via reportChooserSelection, make
sure the parameters are not null and the package passed is also a valid,
installed package.

Bug: 229633537
Bug: 253403242
Test: atest UsageStatsTest
Change-Id: I92089f75c94a4e1e4e40afc70f4488c49d178f96
parent 03a42573
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -2539,10 +2539,20 @@ 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,
                @NonNull String contentType, String[] annotations, @NonNull String action) {
            if (packageName == null) {
                Slog.w(TAG, "Event report user selecting a null package");
                throw new IllegalArgumentException("Package selection must not be null.");
            }
            if (contentType == null) {
                throw new IllegalArgumentException("Content type for selection must not be null.");
            }
            if (action == null) {
                throw new IllegalArgumentException("Selection action 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;
            }