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

Commit 6c61c65f authored by Hans Boehm's avatar Hans Boehm Committed by Gerrit Code Review
Browse files

Merge "Don't fork USAPs with open argument buffer"

parents 958f9efb fab68e14
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -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");
    }