Reland "libbinder: ignore CallRestriction for magic 0 cmd"
This reverts commit 41a4c36712b23aff58d9305e4191dc18d143f6bd.
This fixes the CallRestriction issue, but removes the added test
which has problems in another context and will be fixed separately.
Reason for revert: refix b/167302413
Testing issue will be handled separately in b/168942807.
Fixes: 167302413
Change-Id: Iedc1ff73d086c973bfcab511ace26d0ec2291040
diff --git a/libs/binder/ProcessState.cpp b/libs/binder/ProcessState.cpp
index a530565..83ca687 100644
--- a/libs/binder/ProcessState.cpp
+++ b/libs/binder/ProcessState.cpp
@@ -282,9 +282,17 @@
// a driver API to get a handle to the context manager with
// proper reference counting.
+ IPCThreadState* ipc = IPCThreadState::self();
+
+ CallRestriction originalCallRestriction = ipc->getCallRestriction();
+ ipc->setCallRestriction(CallRestriction::NONE);
+
Parcel data;
- status_t status = IPCThreadState::self()->transact(
+ status_t status = ipc->transact(
0, IBinder::PING_TRANSACTION, data, nullptr, 0);
+
+ ipc->setCallRestriction(originalCallRestriction);
+
if (status == DEAD_OBJECT)
return nullptr;
}