Binder: Don't cast directly from a pointer to binder_uintptr_t
When using the 64 bit binder interface from a 32 bit process the pointer may get sign extended and cause the kernel to fail to read from it. Change-Id: I90fcf53880e2aa92e230a9723f9b3f7696170e32
This commit is contained in:
parent
11cfdccfd3
commit
87b30d0447
@ -921,7 +921,7 @@ status_t IPCThreadState::writeTransactionData(int32_t cmd, uint32_t binderFlags,
|
|||||||
tr.flags |= TF_STATUS_CODE;
|
tr.flags |= TF_STATUS_CODE;
|
||||||
*statusBuffer = err;
|
*statusBuffer = err;
|
||||||
tr.data_size = sizeof(status_t);
|
tr.data_size = sizeof(status_t);
|
||||||
tr.data.ptr.buffer = reinterpret_cast<binder_uintptr_t>(statusBuffer);
|
tr.data.ptr.buffer = reinterpret_cast<uintptr_t>(statusBuffer);
|
||||||
tr.offsets_size = 0;
|
tr.offsets_size = 0;
|
||||||
tr.data.ptr.offsets = 0;
|
tr.data.ptr.offsets = 0;
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user