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

Commit 8c2fb0ea authored by Eugene Susla's avatar Eugene Susla
Browse files

[DO NOT MERGE] Guard against launching permission backup/restore twice per request

It looks like there is some case where AbstractRemoteService would #run the
same PendingRequest the second time which violates AsyncTask assumption.

Fixes: 135986503
Test: atest android.permission.cts.PermissionControllerTest
Change-Id: I2d072714ee0fad3c365ff7eb191d690056c0931a
parent f4535c8d
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -808,6 +808,9 @@ public final class PermissionControllerManager {


        @Override
        @Override
        public void run() {
        public void run() {
            if (mBackupReader.getStatus() != AsyncTask.Status.PENDING) {
                return;
            }
            mBackupReader.execute();
            mBackupReader.execute();


            ParcelFileDescriptor remotePipe = mBackupReader.getRemotePipe();
            ParcelFileDescriptor remotePipe = mBackupReader.getRemotePipe();
@@ -919,6 +922,9 @@ public final class PermissionControllerManager {


        @Override
        @Override
        public void run(@NonNull IPermissionController service) {
        public void run(@NonNull IPermissionController service) {
            if (mBackupSender.getStatus() != AsyncTask.Status.PENDING) {
                return;
            }
            mBackupSender.execute(mBackup);
            mBackupSender.execute(mBackup);


            ParcelFileDescriptor remotePipe = mBackupSender.getRemotePipe();
            ParcelFileDescriptor remotePipe = mBackupSender.getRemotePipe();