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

Commit 75aa534d authored by Felipe Leme's avatar Felipe Leme
Browse files

Check extra type before blindingly casting to Parcelable.

BUG: 29402928
Change-Id: If1729b8a4fcde724372b0a23cfae723a5d9b4faa
parent 29dbc3cc
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -2614,17 +2614,18 @@ public class NotificationManagerService extends SystemService {
    private static void setPendingIntentWhitelistDuration(ActivityManagerInternal am, long duration,
            Bundle extras) {
        for (String key : extras.keySet()) {
            setPendingIntentWhitelistDuration(am, duration, extras.getParcelable(key));
            final Parcelable[] parcelableArray = extras.getParcelableArray(key);
            if (parcelableArray != null) {
                for (Parcelable parcelable: parcelableArray) {
            final Object value = extras.get(key);
            if (value instanceof Parcelable) {
                setPendingIntentWhitelistDuration(am, duration, (Parcelable) value);
            } else if (value instanceof Parcelable[]) {
                for (Parcelable parcelable : (Parcelable[]) value) {
                    setPendingIntentWhitelistDuration(am, duration, parcelable);
                }
            } else if (value instanceof List) {
                for (Object element : (List <?>) value) {
                    if (element instanceof Parcelable) {
                        setPendingIntentWhitelistDuration(am, duration, (Parcelable) element);
                    }
            final ArrayList<Parcelable> parcelableList = extras.getParcelableArrayList(key);
            if (parcelableList != null) {
                for (Parcelable parcelable: parcelableList) {
                    setPendingIntentWhitelistDuration(am, duration, parcelable);
                }
            }
        }