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

Commit 1bd2bc7e authored by Steven Moreland's avatar Steven Moreland
Browse files

libbinder: ~BBinder checks for all values

If any configuration is set on a binder which is created and
destroyed temporarily (which happens often when people are
registering services), then put a log.

Fixes: 240617548
Test: boot, binderLibTest
Change-Id: I8ff8655c6abb308118e1c608947a0be680311d30
parent f4dee55a
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -610,9 +610,23 @@ void BBinder::removeRpcServerLink(const sp<RpcServerLink>& link) {

BBinder::~BBinder()
{
    if (!wasParceled() && getExtension()) {
    if (!wasParceled()) {
        if (getExtension()) {
             ALOGW("Binder %p destroyed with extension attached before being parceled.", this);
        }
        if (isRequestingSid()) {
             ALOGW("Binder %p destroyed when requesting SID before being parceled.", this);
        }
        if (isInheritRt()) {
             ALOGW("Binder %p destroyed after setInheritRt before being parceled.", this);
        }
        if (getMinSchedulerPolicy() != SCHED_NORMAL) {
             ALOGW("Binder %p destroyed after setMinSchedulerPolicy before being parceled.", this);
        }
        if (getMinSchedulerPriority() != 0) {
             ALOGW("Binder %p destroyed after setMinSchedulerPolicy before being parceled.", this);
        }
    }

    Extras* e = mExtras.load(std::memory_order_relaxed);
    if (e) delete e;