diff options
| author | 2023-03-17 20:50:51 +0000 | |
|---|---|---|
| committer | 2023-03-21 03:13:56 +0000 | |
| commit | d7e3cf8eefea41940076504d10f4295e1cbec5d7 (patch) | |
| tree | 9abc67ce483299a14b3f5edf1292e4ace2b95710 | |
| parent | 6e07340e5e9a4904edcd443fffff813af364faf8 (diff) | |
Clear/restore calling app identity prior to ui launch.
Bug: 274160895
Test: local
Change-Id: I78124ced16c9703892d36069c33bedbe29ce22e2
| -rw-r--r-- | services/credentials/java/com/android/server/credentials/GetRequestSession.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/services/credentials/java/com/android/server/credentials/GetRequestSession.java b/services/credentials/java/com/android/server/credentials/GetRequestSession.java index 00fbbba7cea5..68cbc80a435e 100644 --- a/services/credentials/java/com/android/server/credentials/GetRequestSession.java +++ b/services/credentials/java/com/android/server/credentials/GetRequestSession.java @@ -27,6 +27,7 @@ import android.credentials.GetCredentialResponse; import android.credentials.IGetCredentialCallback; import android.credentials.ui.ProviderData; import android.credentials.ui.RequestInfo; +import android.os.Binder; import android.os.CancellationSignal; import android.os.RemoteException; import android.service.credentials.CallingAppInfo; @@ -84,11 +85,12 @@ public class GetRequestSession extends RequestSession<GetCredentialRequest, protected void launchUiWithProviderData(ArrayList<ProviderData> providerDataList) { mChosenProviderFinalPhaseMetric.setUiCallStartTimeNanoseconds(System.nanoTime()); try { - mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent( + Binder.withCleanCallingIdentity(() -> + mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent( RequestInfo.newGetRequestInfo( - mRequestId, mClientRequest, mClientAppInfo.getPackageName()), - providerDataList)); - } catch (RemoteException e) { + mRequestId, mClientRequest, mClientAppInfo.getPackageName()), + providerDataList))); + } catch (RuntimeException e) { mChosenProviderFinalPhaseMetric.setUiReturned(false); respondToClientWithErrorAndFinish( GetCredentialException.TYPE_UNKNOWN, "Unable to instantiate selector"); |