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

Commit 19427156 authored by Christopher Tate's avatar Christopher Tate Committed by Android (Google) Code Review
Browse files

Merge "Don't crash when preferred activity settings are malformed" into klp-dev

parents 0a1988b6 e202cad1
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -9965,6 +9965,10 @@ public class PackageManagerService extends IPackageManager.Stub {
        // writer
        int callingUid = Binder.getCallingUid();
        enforceCrossUserPermission(callingUid, userId, true, "add preferred activity");
        if (filter.countActions() == 0) {
            Slog.w(TAG, "Cannot set a preferred activity with no filter actions");
            return;
        }
        synchronized (mPackages) {
            if (mContext.checkCallingOrSelfPermission(
                    android.Manifest.permission.SET_PREFERRED_APPLICATIONS)
@@ -10024,7 +10028,9 @@ public class PackageManagerService extends IPackageManager.Stub {
                String category = filter.getCategory(0);
                while (it.hasNext()) {
                    PreferredActivity pa = it.next();
                    if (pa.getAction(0).equals(action) && pa.getCategory(0).equals(category)) {
                    if ((pa.countActions() == 0) || (pa.countCategories() == 0)
                            || (pa.getAction(0).equals(action)
                                    && pa.getCategory(0).equals(category))) {
                        if (removed == null) {
                            removed = new ArrayList<PreferredActivity>();
                        }