Native Side of Binder Proxy Tracking by Uid
Enable Processes to track the number of Binder Proxies objects held for
each UID. Triggers callback when a count crosses a threshold, to handle
bad behaving apps.
Merged-In: I1efcc37148bc42cb7690d7eef8fa389433829564
Change-Id: I1efcc37148bc42cb7690d7eef8fa389433829564
Fixes: 63901963
Test: bit FrameworksCoreTests:android.os.BinderProxyCountingTest
(cherry picked from commit d296d0cd620db158f50434a06a190334e386eab9)
diff --git a/libs/binder/ProcessState.cpp b/libs/binder/ProcessState.cpp
index 6e7c427..3e871f8 100644
--- a/libs/binder/ProcessState.cpp
+++ b/libs/binder/ProcessState.cpp
@@ -282,7 +282,7 @@
return nullptr;
}
- b = new BpBinder(handle);
+ b = BpBinder::create(handle);
e->binder = b;
if (b) e->refs = b->getWeakRefs();
result = b;
@@ -316,7 +316,7 @@
// arriving from the driver.
IBinder* b = e->binder;
if (b == nullptr || !e->refs->attemptIncWeak(this)) {
- b = new BpBinder(handle);
+ b = BpBinder::create(handle);
result = b;
e->binder = b;
if (b) e->refs = b->getWeakRefs();