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

Commit a04c7a7c authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Mark more Bundles as being defusable.

They're destined for the system, so they're okay to look inside.

Bug: 27726127
Change-Id: Ic85c308a8efe6f9b8652952717c72b3c663d328a
parent 885b742b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -957,7 +957,7 @@ public class Notification implements Parcelable
            if (in.readInt() == 1) {
                actionIntent = PendingIntent.CREATOR.createFromParcel(in);
            }
            mExtras = in.readBundle();
            mExtras = Bundle.setDefusable(in.readBundle(), true);
            mRemoteInputs = in.createTypedArray(RemoteInput.CREATOR);
        }

@@ -1487,7 +1487,7 @@ public class Notification implements Parcelable

        mSortKey = parcel.readString();

        extras = parcel.readBundle(); // may be null
        extras = Bundle.setDefusable(parcel.readBundle(), true); // may be null

        actions = parcel.createTypedArray(Action.CREATOR); // may be null

+2 −0
Original line number Diff line number Diff line
@@ -394,6 +394,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
        @Override
        public Bundle call(
                String callingPkg, String method, @Nullable String arg, @Nullable Bundle extras) {
            Bundle.setDefusable(extras, true);
            final String original = setCallingPackage(callingPkg);
            try {
                return ContentProvider.this.call(method, arg, extras);
@@ -412,6 +413,7 @@ public abstract class ContentProvider implements ComponentCallbacks2 {
        @Override
        public AssetFileDescriptor openTypedAssetFile(String callingPkg, Uri uri, String mimeType,
                Bundle opts, ICancellationSignal cancellationSignal) throws FileNotFoundException {
            Bundle.setDefusable(opts, true);
            validateIncomingUri(uri);
            uri = getUriWithoutUserId(uri);
            enforceFilePermission(callingPkg, uri, "r", null);
+3 −1
Original line number Diff line number Diff line
@@ -1412,7 +1412,9 @@ public abstract class ContentResolver {
            throw new IllegalArgumentException("Unknown URI " + uri);
        }
        try {
            return provider.call(mPackageName, method, arg, extras);
            final Bundle res = provider.call(mPackageName, method, arg, extras);
            Bundle.setDefusable(res, true);
            return res;
        } catch (RemoteException e) {
            // Arbitrary and not worth documenting, as Activity
            // Manager will kill this process shortly anyway.
+1 −1
Original line number Diff line number Diff line
@@ -147,7 +147,7 @@ public class SyncRequest implements Parcelable {
    }

    private SyncRequest(Parcel in) {
        mExtras = in.readBundle();
        mExtras = Bundle.setDefusable(in.readBundle(), true);
        mSyncFlexTimeSecs = in.readLong();
        mSyncRunTimeSecs = in.readLong();
        mIsPeriodic = (in.readInt() != 0);
+8 −0
Original line number Diff line number Diff line
@@ -181,6 +181,14 @@ public final class Bundle extends BaseBundle implements Cloneable, Parcelable {
        }
    }

    /** {@hide} */
    public static Bundle setDefusable(Bundle bundle, boolean defusable) {
        if (bundle != null) {
            bundle.setDefusable(defusable);
        }
        return bundle;
    }

    /**
     * Clones the current Bundle. The internal map is cloned, but the keys and
     * values to which it refers are copied by reference.
Loading