diff options
| author | 2021-04-19 23:27:29 +0000 | |
|---|---|---|
| committer | 2021-04-19 23:27:29 +0000 | |
| commit | 12a29502e86d89fd5592ecfeb983b914a749b941 (patch) | |
| tree | 9086e6dd805e9b884290663e71b13b942c8f7228 | |
| parent | 98e19bfcbe624ab7480962349df9130426b6a2bc (diff) | |
| parent | 7644e0c5b7660e9bba1f903fb0860c643c74ffb7 (diff) | |
Merge "Don't fork USAPs with open argument buffer" am: 6c61c65f19 am: 7644e0c5b7
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1651247
Change-Id: I3d26e93f5a85943f6d3cf2371d1079213c36089d
| -rw-r--r-- | core/java/com/android/internal/os/ZygoteConnection.java | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java index 1673362028f9..993e4e7b4b3d 100644 --- a/core/java/com/android/internal/os/ZygoteConnection.java +++ b/core/java/com/android/internal/os/ZygoteConnection.java @@ -149,8 +149,11 @@ class ZygoteConnection { return null; } - if (parsedArgs.mUsapPoolStatusSpecified) { - // Handle this once we've released the argBuffer, to avoid opening a second one. + if (parsedArgs.mUsapPoolStatusSpecified + || parsedArgs.mApiDenylistExemptions != null + || parsedArgs.mHiddenApiAccessLogSampleRate != -1 + || parsedArgs.mHiddenApiAccessStatslogSampleRate != -1) { + // Handle these once we've released argBuffer, to avoid opening a second one. break; } @@ -183,18 +186,6 @@ class ZygoteConnection { return null; } - if (parsedArgs.mApiDenylistExemptions != null) { - return handleApiDenylistExemptions(zygoteServer, - parsedArgs.mApiDenylistExemptions); - } - - if (parsedArgs.mHiddenApiAccessLogSampleRate != -1 - || parsedArgs.mHiddenApiAccessStatslogSampleRate != -1) { - return handleHiddenApiAccessLogSampleRate(zygoteServer, - parsedArgs.mHiddenApiAccessLogSampleRate, - parsedArgs.mHiddenApiAccessStatslogSampleRate); - } - if (parsedArgs.mPermittedCapabilities != 0 || parsedArgs.mEffectiveCapabilities != 0) { throw new ZygoteSecurityException("Client may not specify capabilities: " @@ -311,10 +302,20 @@ class ZygoteConnection { } } } + // Handle anything that may need a ZygoteCommandBuffer after we've released ours. if (parsedArgs.mUsapPoolStatusSpecified) { - // Now that we've released argBuffer: return handleUsapPoolStatusChange(zygoteServer, parsedArgs.mUsapPoolEnabled); } + if (parsedArgs.mApiDenylistExemptions != null) { + return handleApiDenylistExemptions(zygoteServer, + parsedArgs.mApiDenylistExemptions); + } + if (parsedArgs.mHiddenApiAccessLogSampleRate != -1 + || parsedArgs.mHiddenApiAccessStatslogSampleRate != -1) { + return handleHiddenApiAccessLogSampleRate(zygoteServer, + parsedArgs.mHiddenApiAccessLogSampleRate, + parsedArgs.mHiddenApiAccessStatslogSampleRate); + } throw new AssertionError("Shouldn't get here"); } |