diff options
| author | 2020-09-22 22:00:45 +0000 | |
|---|---|---|
| committer | 2020-09-22 22:00:45 +0000 | |
| commit | d4c28086bcbaffde7dd5a662ab9d5ab068097a84 (patch) | |
| tree | 48d1ffd0659f16fe016f452fbf0601f1ff5b7517 /libs/binder/ProcessState.cpp | |
| parent | b3f953a7bfb7299954e95f64b3edecf5eb04be8a (diff) | |
| parent | 9514b203cf79a988f45908d63ca6c9223fca4a12 (diff) | |
Merge "Reland "libbinder: ignore CallRestriction for magic 0 cmd""
Diffstat (limited to 'libs/binder/ProcessState.cpp')
| -rw-r--r-- | libs/binder/ProcessState.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/binder/ProcessState.cpp b/libs/binder/ProcessState.cpp index a53056560e..83ca687519 100644 --- a/libs/binder/ProcessState.cpp +++ b/libs/binder/ProcessState.cpp @@ -282,9 +282,17 @@ sp<IBinder> ProcessState::getStrongProxyForHandle(int32_t handle) // 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; } |