From 1bd2bc7e7942ce75237d7ade11fdb0eb1fc6947c Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Fri, 29 Jul 2022 20:29:40 +0000 Subject: 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 --- libs/binder/Binder.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'libs/binder/Binder.cpp') diff --git a/libs/binder/Binder.cpp b/libs/binder/Binder.cpp index 532bacbdfe..2541265ba5 100644 --- a/libs/binder/Binder.cpp +++ b/libs/binder/Binder.cpp @@ -610,8 +610,22 @@ void BBinder::removeRpcServerLink(const sp& link) { BBinder::~BBinder() { - if (!wasParceled() && getExtension()) { - ALOGW("Binder %p destroyed with extension attached before being parceled.", this); + 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); -- cgit v1.2.3-59-g8ed1b