summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2022-07-29 20:29:40 +0000
committer Steven Moreland <smoreland@google.com> 2022-07-29 20:29:40 +0000
commit1bd2bc7e7942ce75237d7ade11fdb0eb1fc6947c (patch)
tree35dc88c6fa1e2c31665fe72f6617956b2d376ebf
parentf4dee55aa19e5c840c0477ee5a24b6a9cc38f0ae (diff)
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
-rw-r--r--libs/binder/Binder.cpp18
1 files changed, 16 insertions, 2 deletions
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<RpcServerLink>& 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);