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

Commit 6aae5369 authored by Andrei Homescu's avatar Andrei Homescu
Browse files

libbinder: Flush excess refs after single async transaction

After processing a single async transaction, RpcState previously
returned without flushing the excess Binder references. This
fixes the control flow so that the refs get flushed for any
number of transactions.

Bug: 259517277
Test: trusty_stats_test
Change-Id: I2665f3b0d6120d4d79f46ef5141c9ff5f85fd5b5
parent 4af92ac7
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -1036,8 +1036,8 @@ processTransactInternalTailCall:
                return DEAD_OBJECT;
                return DEAD_OBJECT;
            }
            }


            if (it->second.asyncTodo.size() == 0) return OK;
            if (it->second.asyncTodo.size() != 0 &&
            if (it->second.asyncTodo.top().asyncNumber == it->second.asyncNumber) {
                it->second.asyncTodo.top().asyncNumber == it->second.asyncNumber) {
                LOG_RPC_DETAIL("Found next async transaction %" PRIu64 " on %" PRIu64,
                LOG_RPC_DETAIL("Found next async transaction %" PRIu64 " on %" PRIu64,
                               it->second.asyncNumber, addr);
                               it->second.asyncNumber, addr);