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

Commit 86bd25d5 authored by Christopher Ferris's avatar Christopher Ferris
Browse files

Avoid using usap when wrap property set.

Bug: 133515802

Test: Verified that malloc debug can be enabled on a USAP enabled device.
Change-Id: I5f25030ce8e667d175712796c0950f38baa2532d
parent d06a20cc
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -407,7 +407,7 @@ public class ZygoteProcess {
         */
         */
        String msgStr = args.size() + "\n" + String.join("\n", args) + "\n";
        String msgStr = args.size() + "\n" + String.join("\n", args) + "\n";


        if (useUsapPool && mUsapPoolEnabled && isValidUsapCommand(args)) {
        if (useUsapPool && mUsapPoolEnabled && canAttemptUsap(args)) {
            try {
            try {
                return attemptUsapSendArgsAndGetResult(zygoteState, msgStr);
                return attemptUsapSendArgsAndGetResult(zygoteState, msgStr);
            } catch (IOException ex) {
            } catch (IOException ex) {
@@ -498,13 +498,21 @@ public class ZygoteProcess {
     * @param args  Zygote/USAP command arguments
     * @param args  Zygote/USAP command arguments
     * @return  True if the command can be passed to a USAP; false otherwise
     * @return  True if the command can be passed to a USAP; false otherwise
     */
     */
    private static boolean isValidUsapCommand(ArrayList<String> args) {
    private static boolean canAttemptUsap(ArrayList<String> args) {
        for (String flag : args) {
        for (String flag : args) {
            for (String badFlag : INVALID_USAP_FLAGS) {
            for (String badFlag : INVALID_USAP_FLAGS) {
                if (flag.startsWith(badFlag)) {
                if (flag.startsWith(badFlag)) {
                    return false;
                    return false;
                }
                }
            }
            }
            if (flag.startsWith("--nice-name=")) {
                // Check if the wrap property is set, usap would ignore it.
                String niceName = flag.substring(12);
                String property_value = SystemProperties.get("wrap." + niceName);
                if (property_value != null && property_value.length() != 0) {
                    return false;
                }
            }
        }
        }


        return true;
        return true;